Warum erhalte ich beim Verknüpfen mit OpenSSL "undefinierte Referenz" -Fehler?

7

Mein Kompilierungsprozess wirft Fehler wie

..undefined reference to `BN_cmp'

obwohl ich einschließe <openssl/bn.h>

und Renn gcc -lssl -lcrypto test.c -o test

kann jemand helfen? (openssl libssl1.0.0, libssl-dev sind installiert)

einalex
quelle

Antworten:

13

Die Lösung ist so einfach wie das Hinzufügen der -lFlags am Ende :

gcc test.c -o test -lssl -lcrypto

Die Reihenfolge ist wichtig, ldda Ubuntu 11.04 -as-neededstandardmäßig mit dem Switch aufgerufen wird, sodass Dateien / Bibliotheken, die von anderen Bibliotheken abhängen, vor diesen anderen Bibliotheken stehen müssen, dh test.cbenötigt werden libcrypto, also vor -lcrypto.

Weitere Informationen finden Sie unter Toolchain-Übergang in Natty Narwhal .

ish
quelle