On Monday, 17 June 2013 at 13:15:35 UTC, Josh wrote:
I've copied the source code from vibe.d's mongodb example into
an Eclipse DDT project, and I can't seem to get it to compile,
even though I *think* I've made the build options resemble what
vibe uses to build.
build.rf:
-od"bin"
-of"bin\TestProg.exe"
-I"src"
-I"C:\D\vibe.d\source"
-I"C:\D\vibe.d\import"
-I"C:\D\vibe.d\lib\win-i386"
"src\Test.d"
C:\D\vibe.d\lib\win-i386\eay.lib
C:\D\vibe.d\lib\win-i386\event2.lib
C:\D\vibe.d\lib\win-i386\ssl.lib
ws2_32.lib
Building with Eclipse gives:
-------- Build Commands: --------
-od"bin"
-of"bin\TestProg.exe"
-I"src"
-I"C:\D\vibe.d\source"
-I"C:\D\vibe.d\import"
-I"C:\D\vibe.d\lib\win-i386"
"src\Test.d"
C:\D\vibe.d\lib\win-i386\eay.lib
C:\D\vibe.d\lib\win-i386\event2.lib
C:\D\vibe.d\lib\win-i386\ssl.lib
ws2_32.lib
OPTLINK (R) for Win32 Release 8.00.13
Copyright (C) Digital Mars 1989-2010 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined _D4vibe4data4bson4Bson6__initZ
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe4data4bson4Bson6__ctorMFNcAyaE4vibe4data4bson4Bson4TypeZS4vibe4data4bson4Bson
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe2db5mongo5mongo14connectMongoDBFAyaZC4vibe2db5mongo6client11MongoClient
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe4data4json4Json8toStringMxFZAya
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe4data4bson4Bson6toJsonMxFZS4vibe4data4json4Json
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe2db5mongo6cursor11MongoCursor7opApplyMFDFKkKS4vibe4data4bson4BsonZiZi
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe2db5mongo6cursor11MongoCursor6__dtorMFZv
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe4data4bson4Bson6__ctorMFNcxHAyaS4vibe4data4bson4BsonZS4vibe4data4bson4Bson
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe2db5mongo8database13MongoDatabase7opIndexMFAyaZS4vibe2db5mongo10collection15MongoCollection
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined _D4vibe4core3log7__arrayZ
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe4core3log10ss_loggersOAC4vibe4core3log6Logger
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe4core3log6rawLogFNbAyaiE4vibe4core3log8LogLevelAyaZv
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined _D4vibe4core3log8__assertFiZv
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe4core14connectionpool8__assertFiZv
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe4core4task4Task5fiberMNgFNbNdZNgC4vibe4core4task9TaskFiber
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe2db5mongo6client11M€„ŽC€†�4lockConnectiñMFZS€…¶4core1ꀈšpool67__T16L€ƒ³ed€ŠµTC€Žé10€Š·15€†î€‰‘Z€’À
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe4data4bson4Bson6__ctorMFNcnZS4vibe4data4bson4Bson
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe2db5mongo6cursor11M€„ŽC€…�6__ctñMFNcC€�®lient€ˆ®€…�Ayai€�§10cñnectiñ5ReplyZS€¢÷
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined _D4vibe4core3log12__ModuleInfoZ
bin\TestProg.obj(TestProg)
Error 42: Symbol Undefined
_D4vibe2db5mongo5mongo12__ModuleInfoZ
--- errorlevel 20
dmd is 2.063 on Windows 7.
I know both Eclipse and dmd work, as I can compile other
programs that just use Phobos. I'm sure it's something really
obvious that I can't see, but I haven't had much luck with
external libs. The same sort of thing happened when I used
GtkD...
Any help is welcomed.
Thanks,
Josh
This is what DUB executes (when you build a project depending on
vibe.d) via dub build --rdmd (I've replaced absolute path to the
project with <path> and added newlines for clarity):
rdmd --build-only --compiler=dmd -w -g -debug
-version=LIBEV4
-version=VibeLibeventDriver
-version=Have_vibe_d
-I<path>\source
-I<path>\.dub\packages\vibe-d\import
-I<path>\.dub\packages\vibe-d\source
-J<path>\views
<path>\.dub\packages\vibe-d\lib\win-i386\eay.lib
<path>\.dub\packages\vibe-d\lib\win-i386\ssl.lib
<path>\.dub\packages\vibe-d\lib\win-i386\event2.lib
wsock32.lib
ws2_32.lib
-ofgamesrv.exe
source\app.d
So it seems you're missing wsock32.lib, but I'm a bit puzzled
with linker errors, as those missing symbols are not inside
wsock32.lib..
Sorry I couldn't be of more help (I'm new to vibe also, but
luckily haven't hit any major build issues like you did).