Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
June 17, 2013 Linker issue? | ||||
---|---|---|---|---|
| ||||
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 |
June 17, 2013 Re: Linker issue? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Josh | 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). |
June 18, 2013 Re: Linker issue? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Aleksandar Ruzicic | On Monday, 17 June 2013 at 19:33:55 UTC, Aleksandar Ruzicic wrote:
> 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..
I've added in wsock32.lib, the -J, and the 3 versions, and it gives the same output. I should mention that I can compile the examples fine with both vibe and dub by themselves, but apparently not inside Eclipse.
Thanks for your help though Aleksandar.
Josh
|
June 18, 2013 Re: Linker issue? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Josh | On Tuesday, 18 June 2013 at 02:02:52 UTC, Josh wrote: > I've added in wsock32.lib, the -J, and the 3 versions, and it gives the same output. I should mention that I can compile the examples fine with both vibe and dub by themselves, but apparently not inside Eclipse. > > Thanks for your help though Aleksandar. > > Josh I think that problem is that you're putting libs after your source file. I have now rearranged input files (as that is the only difference between your's and dub's build command that I can see) so it looks now like this: 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 source\app.d <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 (I've moved source\app.d before .libs) And Optlink responded with few pages of symbol undefined errors! :) So, try putting your source file at the end of command line. |
June 19, 2013 Re: Linker issue? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Aleksandar Ruzicic | On Tuesday, 18 June 2013 at 05:46:17 UTC, Aleksandar Ruzicic wrote: > On Tuesday, 18 June 2013 at 02:02:52 UTC, Josh wrote: >> I've added in wsock32.lib, the -J, and the 3 versions, and it gives the same output. I should mention that I can compile the examples fine with both vibe and dub by themselves, but apparently not inside Eclipse. >> >> Thanks for your help though Aleksandar. >> >> Josh > > > I think that problem is that you're putting libs after your source file. I have now rearranged input files (as that is the only difference between your's and dub's build command that I can see) so it looks now like this: > > 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 > source\app.d > <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 > > (I've moved source\app.d before .libs) > > And Optlink responded with few pages of symbol undefined errors! :) > > So, try putting your source file at the end of command line. -------- Build Commands: -------- -od"bin" -of"bin\TestProg.exe" -version=LIBEV4 -version=VibeLibeventDriver -version=Have_vibe_d -I"src" -I"C:\D\vibe.d\source" -I"C:\D\vibe.d\import" -I"C:\D\vibe.d\lib\win-i386" -J"src" 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 wsock32.lib "src\Test.d" 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 _D4vibe2db5mongo6cursor11MongoCursor7opApplyMFDFKkKS4vibe4data4bson4BsonZiZi 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 _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 _D4vibe4data4bson4Bson6__ctorMFNcAyaE4vibe4data4bson4Bson4TypeZS4vibe4data4bson4Bson bin\TestProg.obj(TestProg) Error 42: Symbol Undefined _D4vibe2db5mongo5mongo14connectMongoDBFAyaZC4vibe2db5mongo6client11MongoClient 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 _D4vibe2db5mongo5mongo12__ModuleInfoZ bin\TestProg.obj(TestProg) Error 42: Symbol Undefined _D4vibe4core3log12__ModuleInfoZ --- errorlevel 20 It would appear to be exactly the same :/ Josh |
Copyright © 1999-2021 by the D Language Foundation