My compilation process throws around errors like
..undefined reference to `BN_cmp'
although I include <openssl/bn.h>
and run
gcc -lssl -lcrypto test.c -o test
can someone help? (openssl libssl1.0.0, libssl-dev are installed)
The solution is as simple as adding the -l
flags at the end:
gcc test.c -o test -lssl -lcrypto
The order matters because ld
since Ubuntu 11.04 is invoked with the -as-needed
switch by default, so that files/libraries which depend on other libraries must come before these other libraries, i.e. test.c
needs libcrypto
, so it must come before -lcrypto
.
For more information, see Toolchain Transition in Natty Narwhal.