RejectedSoftware Forums

Sign up

Unresolves externals en masse

I did a "dub init main" with dub version 0.9.19, and added ""dependencies": {"vibe-d": "~master"},"versions": ["VibeCustomMain"]" to the json file. I didn't edit the app.d file at all. On running "dub build" I get 72 unresolved dependencies on my Windows 7 64 system. Compiler is dmd 2.063.2 and 64 bit linker is VS2012 (I think). On removing the vibe-d dependency, "dub" executes the program and "dub build" works as well.

I did some searching, but "dub 72 unresolved externals" specifically found Card Captor Sakura, The Beatles, Suharto, Red Hot Chili Peppers and Doris Day to be of greater importance than dub. Thanks Google. Most other topics were old bugs.
Is there some kind of magic handle I'm missing? My default dmd setting includes the -m64 switch, something I'm less willing to give up.
Also, shouldn't objects and linked files be dumped in public or something instead of in the middle?

Re: Unresolves externals en masse

Sorry, I can't find an edit button.

I see that some of the dependencies are "invalid library format", specifically for libraries found in the "win-i386" folder. Two of the three libraries are also found in the "win-amd64" folder. Using "--arch=x86_64" gives me "fatal error LNK1104: cannot open file '........\AppData\Roaming\dub\packages\vibe-d-master\lib\win-amd64/event2.lib'"
There is no event2.dll, so that's probably the fault. Is it supposed to be included in vibe-d master or should I just find one myself?

Re: Unresolves externals en masse

Am 05.11.2013 08:31, schrieb Casper Faergemand:

Sorry, I can't find an edit button.

Editing is not (cannot be) supported due to the newsgroup nature of the
forum, even though it would sometimes be handy.

I see that some of the dependencies are "invalid library format", specifically for libraries found in the "win-i386" folder. Two of the three libraries are also found in the "win-amd64" folder. Using "--arch=x86_64" gives me "fatal error LNK1104: cannot open file '........\AppData\Roaming\dub\packages\vibe-d-master\lib\win-amd64/event2.lib'"
There is no event2.dll, so that's probably the fault. Is it supposed to be included in vibe-d master or should I just find one myself?

Exactly, currently there is no precompiled 64-bit version of libevent
included, so there are two options:

  1. Add a field "subConfigurations": {"vibe-d": "win32"} to your
    package.json file to use the WinAPI based driver instead (recommended)
  2. Get the libevent2 sources and compile them with VS (a static
    library is fine, no need for a DLL+import library)

I may do 2 at some point myself, but due to 1 it has a quite low
priority right now.