compiling problem, mingw win32...

Questions or HOWTOs about the above? Post 'em here...
Post Reply
User avatar
bamf.
Private First Class
Private First Class
Posts: 190
Joined: Mon Dec 09, 2002 2:31 pm
Location: New York
Contact:

compiling problem, mingw win32...

Post by bamf. »

I'm trying to compile 2.0.10 with mingw/msys and am having some trouble when I run ./configure, here is the error:

checking for curl-config... /usr/local/bin/curl-config
checking for the version of libcurl... 7.16.4
checking whether libcurl is usable... no
configure: error: libcurl is required. You must install it. See http://curl.haxx.se/

I've downloaded the latest version of curl (that's not it listed above, I've been working backwards from 7.17.1). I don't know a great deal about curl, but it seems that the latest zipped versions are missing some of the files the earlier versions had - the libcurl.dll file for example.

Any help would be appreciated. Thanks.
It's a good idea to always carry two sacks of something when you walk around. That way, if anybody says: Hey, can you give me a hand? You can say: Sorry, got these sacks.
User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5196
Joined: Fri Dec 13, 2002 4:11 am

Post by JeffM »

you need to make sure you get the libcurl dev kit for mingw, not the one for visual C++. I don't see a package for minGW, you may have to compile it yourself under minGW.

minGW is based of GCC and does not use the same files as the Microsoft compiler used in Visual C++

also just so you know, there are free versions of the Microsoft compilers ( visual C++ 2005 and 2008 express editions ).
ImageJeffM
User avatar
bamf.
Private First Class
Private First Class
Posts: 190
Joined: Mon Dec 09, 2002 2:31 pm
Location: New York
Contact:

Post by bamf. »

Thanks Jeff.
It's a good idea to always carry two sacks of something when you walk around. That way, if anybody says: Hey, can you give me a hand? You can say: Sorry, got these sacks.
User avatar
bamf.
Private First Class
Private First Class
Posts: 190
Joined: Mon Dec 09, 2002 2:31 pm
Location: New York
Contact:

Post by bamf. »

ok, got curl compiled for mingw and can run ./configure. When it completes I get:

BZFlag-2.0.10.20071211 with the following:
no curses!
SDL!
bzadmin
bzflag client

The no curses should be ok as I don't need bzadmin. I have the latest directx files (dsound.h, d3dtypes.h and ddraw.h) in the mingw\include directory as well as the latest SDL for mingw from libsdl.org. When I run make I get this towards the end. Any ideas?:

c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:(.text+0x8): undefined reference to `_imp__curl_version'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:(.text+0x2e): undefined reference to `_imp__curl_global_init'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:(.text+0x82): undefined reference to `_imp__curl_multi_init'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager10setTimeoutEl':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:118: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:123: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:127: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:123: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:127: undefined reference to `_imp__curl_easy_setopt'
../common/.libs/libCommon.a(cURLManager.o):c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:138: more undefined references to `_imp__curl_easy_setopt
follow
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager9addHandleEv':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:228: undefined reference to `_imp__curl_multi_add_handle'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager12removeHandleEv':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:239: undefined reference to `_imp__curl_multi_remove_handle'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager5fdsetER6fd_setS1_':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:277: undefined reference to `_imp__curl_multi_fdset'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager12infoCompleteE8CURLcode':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:328: undefined reference to `_imp__curl_formfree'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager11performWaitEv':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:265: undefined reference to `_imp__curl_easy_perform'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager11getFileTimeERl':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:344: undefined reference to `_imp__curl_easy_getinfo'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager11getFileSizeERd':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:356: undefined reference to `_imp__curl_easy_getinfo'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager16setTimeConditionENS_13timeConditionERl':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:370: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:378: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:384: undefined reference to `_imp__curl_easy_setopt'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager11addFormDataEPKcS1_':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:425: undefined reference to `_imp__curl_formadd'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager17setDNSCachingTimeEi':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:438: undefined reference to `_imp__curl_easy_setopt'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager12setUserAgentESs':
c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.h:1456: undefined reference to `_imp__curl_easy_setopt'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager12setInterfaceESs':
c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.h:1456: undefined reference to `_imp__curl_easy_setopt'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager11setPostModeESs':
c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.h:1456: undefined reference to `_imp__curl_easy_setopt'
c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.h:536: undefined reference to `_imp__curl_easy_setopt'
../common/.libs/libCommon.a(cURLManager.o):c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:167: more undefined references to `_imp__curl_easy_setopt' follow
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManagerD0Ev':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:86: undefined reference to `_imp__curl_easy_cleanup'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManagerD1Ev':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:86: undefined reference to `_imp__curl_easy_cleanup'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManagerD2Ev':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:86: undefined reference to `_imp__curl_easy_cleanup'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManager7performEv':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:293: undefined reference to `_imp__curl_multi_perform'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:306: undefined reference to `_imp__curl_multi_info_read'
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManagerC1Ev':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:41: undefined reference to `_imp__curl_easy_init'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:54: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:59: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:64: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:69: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:74: undefined reference to `_imp__curl_easy_setopt'
../common/.libs/libCommon.a(cURLManager.o):c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:48: more undefined references to `_imp__curl_easy_setopt' follow
../common/.libs/libCommon.a(cURLManager.o): In function `ZN11cURLManagerC2Ev':
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:41: undefined reference to `_imp__curl_easy_init'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:54: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:59: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:64: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:69: undefined reference to `_imp__curl_easy_setopt'
c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:74: undefined reference to `_imp__curl_easy_setopt'
../common/.libs/libCommon.a(cURLManager.o):c:/msys/1.0/bzflag-2.0.10rc3/src/common/cURLManager.cxx:48: more undefined references to `_imp__curl_easy_setopt' follow
../c-ares/.libs/libcares.a(ares_process.o): In function `ares__send_query':
c:/msys/1.0/bzflag-2.0.10rc3/src/c-ares/ares_process.c:509: undefined reference to `connect@12'
c:/msys/1.0/bzflag-2.0.10rc3/src/c-ares/ares_process.c:538: undefined reference to `connect@12'
collect2: ld returned 1 exit status
make[2]: *** [bzfs.exe] Error 1
make[2]: Leaving directory `/c/msys/1.0/bzflag-2.0.10rc3/src/bzfs'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/c/msys/1.0/bzflag-2.0.10rc3/src'
make: *** [install-recursive] Error 1
It's a good idea to always carry two sacks of something when you walk around. That way, if anybody says: Hey, can you give me a hand? You can say: Sorry, got these sacks.
User avatar
macsforme
General
General
Posts: 2069
Joined: Wed Mar 01, 2006 5:43 am

Post by macsforme »

It looks like the compiler cannot find the libcurl headers. I would think that configure should've caught that, but I'm not familiar with mingw.

As a guess, maybe copy the libcurl headers into mingw\include?

Also, if you don't need bzadmin, best to disable it with --disable-bzadmin... will save you some space, and make you compile time a bit quicker.
User avatar
DTRemenak
General
General
Posts: 625
Joined: Thu Jan 16, 2003 4:54 am
Location: U.S.
Contact:

Post by DTRemenak »

ld is the linker, not the compiler. It finds the headers fine, but can't find the symbols in the library. Make sure you did a "make install" when building libcurl (or otherwise copied the .lib file to the appropriate place).
User avatar
bamf.
Private First Class
Private First Class
Posts: 190
Joined: Mon Dec 09, 2002 2:31 pm
Location: New York
Contact:

Post by bamf. »

I did run "./configure, make and make install" on curl, these all ran with no errors.
I also tried compiling curl with a prior version of curl (no errors) but received the same error when compiling bzflag.
I searched the directory structure for a .lib file and found nothing. I did copy a few files to different locations (libcurl.a, libcurl.la, libcurl.dll.a, libcurl-4.dll, curl.h, curl-config, libcurl.pc, curlver.h, curl.exe).

This is what I get right before the error I posted above:

if g++ -DHAVE_CONFIG_H -I. -I. -I../../include -I../../include -I/usr/local/include -DINSTALL_DATA_DIR=\"/usr/local/share/bzflag\" -DINSIDE_BZ -fsigned-char -Wno-deprecated -g -O2 -Wall -W -mtune=i686 -ffast-math -fno-exceptions -MT bzfs.o -MD -MP -MF ".deps/bzfs.Tpo" \
-c -o bzfs.o `test -f 'bzfs.cxx' || echo './'`bzfs.cxx; \
then mv ".deps/bzfs.Tpo" ".deps/bzfs.Po"; \
else rm -f ".deps/bzfs.Tpo"; exit 1; \
fi
/bin/sh ../../libtool --mode=link g++ -fsigned-char -Wno-deprecated -g -O2 -Wall -W -mtune=i686 -ffast-math -fno-exceptions -o bzfs.exe -export-dynamic -static AccessControlList.o Authentication.o BanCommands.o bzfsAPI.o BZWError.o BZWReader.o CmdLineOptions.o CustomArc.o CustomBase.o CustomBox.o CustomCone.o CustomDynamicColor.o CustomGate.o CustomGroup.o CustomLink.o CustomMaterial.o CustomMesh.o CustomMeshFace.o CustomMeshTransform.o CustomPhysicsDriver.o CustomSphere.o CustomTextureMatrix.o CustomPyramid.o CustomTetra.o CustomWaterLevel.o CustomWeapon.o CustomWorld.o CustomZone.o DropGeometry.o EntryZones.o Filter.o FlagHistory.o FlagInfo.o GameKeeper.o ListServerConnection.o MasterBanList.o ParseMaterial.o Permissions.o RandomSpawnPolicy.o RecordReplay.o RejoinList.o Score.o ServerCommand.o SpawnPolicy.o SpawnPosition.o TeamBases.o WorldFileLocation.o WorldFileObject.o WorldFileObstacle.o WorldGenerators.o WorldInfo.o WorldWeapons.o WorldEventManager.o commands.o bzfs.o ../obstacle/libObstacle.la ../game/libGame.la ../net/libNet.la ../common/libCommon.la -L/usr/local/lib -lcurl -lwinmm -lws2_32 -lws2_32 ../c-ares/libcares.la ../regex/libregex.la ../zlib/libz.la ../date/libDate.la -lm
g++ -fsigned-char -Wno-deprecated -g -O2 -Wall -W -mtune=i686 -ffast-math -fno-exceptions -o bzfs.exe AccessControlList.o Authentication.o BanCommands.o bzfsAPI.o BZWError.o BZWReader.o CmdLineOptions.o CustomArc.o CustomBase.o CustomBox.o CustomCone.o CustomDynamicColor.o CustomGate.o CustomGroup.o CustomLink.o CustomMaterial.o CustomMesh.o CustomMeshFace.o CustomMeshTransform.o CustomPhysicsDriver.o CustomSphere.o CustomTextureMatrix.o CustomPyramid.o CustomTetra.o CustomWaterLevel.o CustomWeapon.o CustomWorld.o CustomZone.o DropGeometry.o EntryZones.o Filter.o FlagHistory.o FlagInfo.o GameKeeper.o ListServerConnection.o MasterBanList.o ParseMaterial.o Permissions.o RandomSpawnPolicy.o RecordReplay.o RejoinList.o Score.o ServerCommand.o SpawnPolicy.o SpawnPosition.o TeamBases.o WorldFileLocation.o WorldFileObject.o WorldFileObstacle.o WorldGenerators.o WorldInfo.o WorldWeapons.o WorldEventManager.o commands.o bzfs.o ../obstacle/.libs/libObstacle.a ../game/.libs/libGame.a ../net/.libs/libNet.a ../common/.libs/libCommon.a -L/usr/local/lib /usr/local/lib/libcurl.a -lwinmm -lws2_32 ../c-ares/.libs/libcares.a ../regex/.libs/libregex.a ../zlib/.libs/libz.a ../date/.libs/libDate.a -lm
../common/.libs/libCommon.a(cURLManager.o): In function `ZNSt8_Rb_treeIPvSt4pairIKS0_P11cURLManagerESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE11lower_boundERS2_':
It's a good idea to always carry two sacks of something when you walk around. That way, if anybody says: Hey, can you give me a hand? You can say: Sorry, got these sacks.
User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5196
Joined: Fri Dec 13, 2002 4:11 am

Post by JeffM »

it still looks like it can't find the link library.
ImageJeffM
Post Reply