From: Warren Young Date: August 4 2005 6:14pm Subject: Re: Cygwin/Win32/V2.0beta/library help! (MySQLC++ newbie) List-Archive: http://lists.mysql.com/plusplus/4716 Message-Id: <42F25AFE.9030601@etr-usa.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070500020204040503050408" --------------070500020204040503050408 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Warren Young wrote: > for now, you're going to have to force it to use static libraries, I've been chasing this on the Cygwin mailing list. Some kind folk there have given me the clues necessary to get the library building using shared objects. It even runs, for a sufficiently restricted definition of "runs". First, you need to build MySQL from source. I had the best luck with 4.1. You must give the "--without-server" configure flag, because a) you only need the client libraries; and b) the server doesn't build correctly under Cygwin anyway. Say "make install" once it's built. Second, you need to go into /usr/local/lib/mysql (assuming you let it install in the default location) and give this monster of a command: gcc -shared -o cygmysqlclient-4.1.13.dll \ -Wl,--out-implib=libmysqlclient.dll.a -Wl,--export-all-symbols \ -Wl,--enable-auto-import -Wl,--whole-archive libmysqlclient.a \ -Wl,--no-whole-archive -lcrypt -lz Then, apply the attached patch to MySQL++. Having applied that, you will need to run MySQL++'s bootstrap script. Partly this integrates the patch changes, and partly it updates the tarball versions of scripts like libtool with Cygwin-aware versions. Finally, you're ready to build MySQL++. It should build just fine. But you'll find that the example programs hang, hard. Simple1, for instance, hangs on line 199 of examples/util.cpp, during a return from Query::store(const char*)! I think there's some compiler or binutils type of problem here, but I could be wrong. I'm posting this saga in case someone (Patrick?) wants to try debugging this further. Me, I'm finished unless someone else comes up with something. I've fought this damned thing for days now, and I don't even use Cygwin for this. Time to move on. "program, vt.: To engage in a pastime similar to banging one's head against a wall, but with fewer opportunies for reward." -- The Jargon File --------------070500020204040503050408 Content-Type: text/plain; name="cygwin-mysqlpp.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="cygwin-mysqlpp.patch" Index: common.am =================================================================== --- common.am (revision 1000) +++ common.am (working copy) @@ -1,4 +1,4 @@ INCLUDES = -I$(top_srcdir)/lib -LIBS = -lz -l@MYSQL_C_LIB@ +LIBS = -lz -lmysqlclient.dll MYSQLPP_LIB = $(top_builddir)/lib/libmysqlpp.la Index: lib/Makefile.am =================================================================== --- lib/Makefile.am (revision 1000) +++ lib/Makefile.am (working copy) @@ -22,7 +22,7 @@ lib_LTLIBRARIES=libmysqlpp.la -libmysqlpp_la_LDFLAGS=-version-info @MYSQLPP_LIBTOOL_VERSION@ +libmysqlpp_la_LDFLAGS=-version-info @MYSQLPP_LIBTOOL_VERSION@ -no-undefined libmysqlpp_la_SOURCES = \ coldata.cpp connection.cpp datetime.cpp fields.cpp field_names.cpp \ --------------070500020204040503050408--