undefined reference to `SHA1' in Zeile
Ich versuche zu kompilieren eine Bibliothek auf linux. diese Bibliothek verwendet <openssl/sha.h>
Bibliothek. Ich habe diese Bibliothek in der Quell-Datei. Danach habe ich die use-flag -lssl
und Flagge -lcrypto
um dieses Projekt zu kompilieren. So, hier ist mein Befehl :
gcc -g -Wall -lssl -lcrypto -o bt_client file_a.c file_b.c
Aber ich treffe Fehler :
undefined reference to `SHA1' at line 130
Code in Zeile 130 :
SHA1((unsigned char *) null_padded_name, 20, (unsigned char *)name_sha1);
Vermisse ich etwas ? Bitte korrigieren Sie mich. Danke 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie den link Ihrer Anwendung, der linker sucht nach Abhängigkeiten in der Reihenfolge, die Sie Ihnen auf der Kommandozeile.
Also, wenn Sie eine Bibliothek hinzuzufügen (wie
-lssl
), bevor der source - /Objekt-Datei, hängt davon ab, die Bibliothek, der linker nicht finden, alle Abhängigkeiten und ignorieren die Bibliothek.Dies bedeutet, dass müssen Sie immer setzen Bibliotheken, die letzten auf der Kommandozeile.
Versuchen Sie dies:
Wenn Sie sicher sind, dass symbol
SHA1
existiert inlibssl.so
oderlibcrypto.so
.Müssen Sie -lssl und -lcrypto am Ende der Befehlszeile: