RejectedSoftware Forums

Sign up

Error linking OpenSSL

I updated from vibed 0.7.19 to 0.7.20-rc.2, on a project with no other dependencies, and this link error happened (verbose):

Nathans-MacBook-Pro:aethelberd nathanmswan$ dub build -v
Using dub registry url 'http://code.dlang.org/'
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /Users/nathanmswan/.dub/packages/local-packages.json
Try to load local package map at /Users/nathanmswan/.dub/packages/local-packages.json
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /Users/nathanmswan/.dub/packages/local-packages.json
Try to load local package map at /Users/nathanmswan/.dub/packages/local-packages.json
Note: Failed to determine version of package aethelberd at /Users/nathanmswan/Source/aethelberd. Assuming ~master.
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /Users/nathanmswan/.dub/packages/local-packages.json
Try to load local package map at /Users/nathanmswan/.dub/packages/local-packages.json
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /Users/nathanmswan/.dub/packages/local-packages.json
Try to load local package map at /Users/nathanmswan/.dub/packages/local-packages.json
Collecting dependencies for aethelberd
Found dependency vibe-d >=0.7.20-rc.2: true
Collecting dependencies for vibe-d
Found dependency libevent ~master: true
Collecting dependencies for libevent
Found dependency openssl ~master: true
Collecting dependencies for openssl
Found dependency libev ~master: true
Collecting dependencies for libev
Checking dependencies in '/Users/nathanmswan/Source/aethelberd'
Required package 'vibe-d' found with version '0.7.20-rc.2'
Required package 'libevent' found with version '~master'
Required package 'openssl' found with version '~master'
Required package 'libev' found with version '~master'
Generating using build
Generate target aethelberd (executable /Users/nathanmswan/Source/aethelberd aethelberd)
Generate target vibe-d (staticLibrary /Users/nathanmswan/.dub/packages/vibe-d-0.7.20-rc.2 vibe-d)
Generate target libevent (sourceLibrary /Users/nathanmswan/.dub/packages/libevent-master libevent)
Generate target openssl (sourceLibrary /Users/nathanmswan/.dub/packages/openssl-master openssl)
vibe-d: ["vibe-d", "libevent", "openssl"]
aethelberd: ["aethelberd", "vibe-d", "libevent", "openssl"]
Target is up to date. Using existing build in /Users/nathanmswan/.dub/packages/vibe-d-0.7.20-rc.2/.dub/build/libevent-debug-posix.osx-x86_64-dmd-2494B3E0AC5A6FFE1AD0A6AEA442D8E6/. Use --force to force a rebuild.
Copying target from /Users/nathanmswan/.dub/packages/vibe-d-0.7.20-rc.2/.dub/build/libevent-debug-posix.osx-x86_64-dmd-2494B3E0AC5A6FFE1AD0A6AEA442D8E6/libvibe-d.a to /Users/nathanmswan/.dub/packages/vibe-d-0.7.20-rc.2
Target '/Users/nathanmswan/Source/aethelberd/.dub/build/application-debug-posix.osx-x86_64-dmd-C58AF192D2D0D1894BBB3CEE93D2AE03/aethelberd' doesn't exist, need rebuild.
Building aethelberd configuration "application", build type debug.
Trying to use pkg-config to resolve library flags for ["event", "event_pthreads", "ssl", "crypto"].
Compiling...
dmd -c -of.dub/build/application-debug-posix.osx-x86_64-dmd-C58AF192D2D0D1894BBB3CEE93D2AE03/aethelberd.o -debug -g -w -version=VibeLibeventDriver -version=Have_aethelberd -version=Have_vibe_d -version=Have_libevent -version=Have_openssl -Isource -I../../.dub/packages/vibe-d-0.7.20-rc.2/source -I../../.dub/packages/libevent-master -I../../.dub/packages/openssl-master source/aethelbert/server.d source/aethelbert/users.d source/app.d ../../.dub/packages/vibe-d-0.7.20-rc.2/source/vibe/appmain.d
Warning: -version=VibeDefaultMain will be required in the future to use vibe.d's default main(). Please update your build scripts.
Linking...
dmd -of.dub/build/application-debug-posix.osx-x86_64-dmd-C58AF192D2D0D1894BBB3CEE93D2AE03/aethelberd .dub/build/application-debug-posix.osx-x86_64-dmd-C58AF192D2D0D1894BBB3CEE93D2AE03/aethelberd.o ../../.dub/packages/vibe-d-0.7.20-rc.2/libvibe-d.a -L-L/usr/local/Cellar/libevent/2.0.19/lib -L-levent_pthreads -L-levent -L-lssl -L-lcrypto -L-lz -L-lcrypto -L-lz -g
Undefined symbols for architecture x86_64:
  "__D6deimos7openssl3pem10__mixin2188__mixin18__mixin217PEM_read_DHparamsUNbPOS4core4stdc5stdio6_iobufPPS6deimos7openssl2dh5dh_stPUPaiiPvZiPvZPS6deimos7openssl2dh5dh_st", referenced from:
      _D4vibe6stream3ssl10SSLContext11setDHParamsMFAyaZv in libvibe-d.a(ssl_3318_3d7.o)
  "_D6deimos7openssl2ec24EC_KEY_new_by_curve_nameFiZPS6deimos7openssl3evp9ec_key_st", referenced from:
      _D4vibe6stream3ssl10SSLContext12setECDHCurveMFAyaZv in libvibe-d.a(ssl_3318_3d7.o)
  "_D6deimos7openssl2ec11EC_KEY_freeFPS6deimos7openssl3evp9ec_key_stZv", referenced from:
      _D4vibe6stream3ssl10SSLContext12setECDHCurveMFAyaZv in libvibe-d.a(ssl_3318_3d7.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
--- errorlevel 1
FAIL .dub/build/application-debug-posix.osx-x86_64-dmd-C58AF192D2D0D1894BBB3CEE93D2AE03 aethelberd executable
Error executing command build: Link command failed with exit code 1

Full exception: object.Exception@source/dub/compilers/dmd.d(188): Link command failed with exit code 1
----------------
5   dub                                 0x000000010d9d0ceb pure @safe bool std.exception.enforce!(bool).enforce(bool, lazy const(char)[], immutable(char)[], ulong) + 107
6   dub                                 0x000000010d979fb2 void dub.compilers.dmd.DmdCompiler.invokeLinker(const(dub.compilers.compiler.BuildSettings), const(dub.compilers.compiler.BuildPlatform), immutable(char)[][]) + 906
7   dub                                 0x000000010d986303 void dub.generators.build.BuildGenerator.buildWithCompiler(dub.generators.generator.GeneratorSettings, dub.compilers.compiler.BuildSettings) + 1299
8   dub                                 0x000000010d9841ff void dub.generators.build.BuildGenerator.performCachedBuild(dub.generators.generator.GeneratorSettings, dub.compilers.compiler.BuildSettings, const(dub.package_.Package), immutable(char)[], immutable(char)[]) + 1103
9   dub                                 0x000000010d983cc6 void dub.generators.build.BuildGenerator.buildTarget(dub.generators.generator.GeneratorSettings, dub.compilers.compiler.BuildSettings, const(dub.package_.Package), immutable(char)[]) + 734
10  dub                                 0x000000010d9839d7 void dub.generators.build.BuildGenerator.generateTargets(dub.generators.generator.GeneratorSettings, const(dub.generators.generator.ProjectGenerator.TargetInfo[immutable(char)[]])).void buildTargetRec(immutable(char)[]) + 863
11  dub                                 0x000000010d9834e0 void dub.generators.build.BuildGenerator.generateTargets(dub.generators.generator.GeneratorSettings, const(dub.generators.generator.ProjectGenerator.TargetInfo[immutable(char)[]])) + 176
12  dub                                 0x000000010d98862f void dub.generators.generator.ProjectGenerator.generate(dub.generators.generator.GeneratorSettings) + 735
13  dub                                 0x000000010d94b1d2 void dub.dub.Dub.generateProject(immutable(char)[], dub.generators.generator.GeneratorSettings) + 170
14  dub                                 0x000000010d93ead4 int dub.commandline.GenerateCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) + 1652
15  dub                                 0x000000010d93ede5 int dub.commandline.BuildCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) + 141
16  dub                                 0x000000010d93cb36 int dub.commandline.runDubCommandLine(immutable(char)[][]) + 4502
17  dub                                 0x000000010d93ab7c _Dmain + 32
18  dub                                 0x000000010da3b489 void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll().void __lambda1() + 33
19  dub                                 0x000000010da3b3d5 void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 45
20  dub                                 0x000000010da3b435 void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() + 45
21  dub                                 0x000000010da3b3d5 void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 45
22  dub                                 0x000000010da3b351 _d_run_main + 449
23  dub                                 0x000000010d93aba6 main + 34
24  dub                                 0x000000010d93ab54 start + 52
25  ???                                 0x0000000000000003 0x0 + 3

Re: Error linking OpenSSL

On Sun, 01 Jun 2014 06:18:22 GMT, Nathan M. Swan wrote:

I updated from vibed 0.7.19 to 0.7.20-rc.2, on a project with no other dependencies, and this link error happened (verbose):

...

I think this is caused by DUB not upgrading the "~master" version of the "openssl" package. Try deleting it with rm -r ~/.dub/packages/openssl-master (or dub remove --force openssl).

Re: Error linking OpenSSL

On Sun, 01 Jun 2014 08:42:56 GMT, Sönke Ludwig wrote:

On Sun, 01 Jun 2014 06:18:22 GMT, Nathan M. Swan wrote:

I updated from vibed 0.7.19 to 0.7.20-rc.2, on a project with no other dependencies, and this link error happened (verbose):

...

I think this is caused by DUB not upgrading the "~master" version of the "openssl" package. Try deleting it with rm -r ~/.dub/packages/openssl-master (or dub remove --force openssl).

I tried dub remove --force-remove openssl, and it worked.

Thanks,
NMS