Why do I get "undefined reference" errors when linking against OpenSSL?

36,169

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.

Share:
36,169

Related videos on Youtube

einalex
Author by

einalex

Updated on September 18, 2022

Comments

  • einalex
    einalex over 1 year

    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)