www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Help compiling discord bot from dub, vibe.d linker errors

reply Anonymouse <asdf asdf.net> writes:
I wanted to make a Hello World discord bot, and I found dscord[1] 
on dub. It even has an example bot Jeff[2], but it won't build. 
The machine is running Manjaro/Arch linux x64.

 $ ./build.py
 Building with 0 plugins...
   Building jeff...
...
 dscord ~master: target for configuration 
 "dscord-linux-static-x64" is up to date.
 jeff ~master: building configuration "jeff-linux-static-x64"...
 Linking...
 ../../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/.dub/build/generic-debug-linux.posix-x86_64-dmd_2074-2FC725C8AA6EF22B1FB09E2271B4E136/libvibe-d_
tream.a(openssl.o): In function `_D4vibe6stream7openssl18_sharedStaticCtor2FZv':
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:863: undefined reference to `SSL_load_error_strings'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:864: undefined reference to `SSL_library_init'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:866: undefined reference to `CRYPTO_num_locks'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:874: undefined reference to `CRYPTO_set_id_callback'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:880: undefined reference to `SSL_get_ex_new_index'
 ../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/.dub/build/generic-debug-linux.posix-x86_64-dmd_2074-2FC725C8AA6EF22B1FB09E2271B4E136/libvibe-d_stream.a(
penssl_10df_569.o): In function
`_D4vibe6stream7openssl14OpenSSLContext6__ctorMFNfE4vibe6stream3tls14TLSContextKindE4vibe6stream3tls10TLSVersionZ9__lambda3MFNbNeZv':
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:419: undefined reference to `SSLv23_client_method'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:420: undefined reference to `SSLv23_client_method'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:424: undefined reference to `SSLv23_client_method'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:425: undefined reference to `SSLv23_client_method'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:432: undefined reference to `SSLv23_server_method'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:433: undefined reference to `SSLv23_server_method'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:435: undefined reference to `SSLv23_server_method'
 /home/src/discord/jeff/../../.dub/packages/vibe-d-0.8.0-beta.6/vibe-d/stream/vibe/s
ream/openssl.d:436: undefined reference to `SSLv23_server_method'
... Is that vibe.d not linking with openssl? There are more errors but it would be a bit long to paste them all. [1]: https://code.dlang.org/packages/dscord [2]: https://github.com/b1naryth1ef/jeff
Jun 15 2017
next sibling parent Anonymouse <asdf asdf.net> writes:
On Thursday, 15 June 2017 at 15:50:06 UTC, Anonymouse wrote:
 I wanted to make a Hello World discord bot, and I found 
 dscord[1] on dub. It even has an example bot Jeff[2], but it 
 won't build. The machine is running Manjaro/Arch linux x64.
Apologies, this was meant to go into Learn. I'll post it there instead.
Jun 15 2017
prev sibling parent Sebastiaan Koppe <mail skoppe.eu> writes:
On Thursday, 15 June 2017 at 15:50:06 UTC, Anonymouse wrote:
 I wanted to make a Hello World discord bot, and I found 
 dscord[1] on dub. It even has an example bot Jeff[2], but it 
 won't build. The machine is running Manjaro/Arch linux x64.

 Is that vibe.d not linking with openssl? There are more errors 
 but it would be a bit long to paste them all.

 [1]: https://code.dlang.org/packages/dscord
 [2]: https://github.com/b1naryth1ef/jeff
vibe.d is using the deimos openssl bindings, and those are outdated. See [1] While vibe.d can use botan instead of openssl, due to an open bug with dub, it won't work. I do have a PR [2] fixing it, but it ain't pretty. Also, consider [3] as workaround. [1] https://github.com/rejectedsoftware/vibe.d/issues/1758 [2] https://github.com/dlang/dub/pull/1148 [2] https://github.com/rejectedsoftware/vibe.d/pull/1769
Jun 15 2017