我嘗試在Linux上編譯一個庫。這個庫文件使用<openssl/sha.h>
庫。我已經將這個庫包含在源文件中。之後,我使用標誌-lssl
和標誌-lcrypto
來編譯這個項目。因此,這裏是我的命令:未定義對'SHA1'的引用,在行
gcc -g -Wall -lssl -lcrypto -o bt_client file_a.c file_b.c
但我遇到錯誤:在線路130
undefined reference to `SHA1' at line 130
代碼是:
SHA1((unsigned char *) null_padded_name, 20, (unsigned char *)name_sha1);
難道我錯過了什麼?請糾正我。謝謝:)
這有讓您覆蓋通過將使用代碼之間的封裝代碼/包調用的有趣的功能和實際的庫代碼。 –
謝謝:)我明白了:D –
不正確。我總是把我的圖書館放在第一位,我的.C和.o文件放在最後。 (沒有很好的理由,複製一箇舊的makefile來創建下一個。)我在Linux上使用g ++。下面的答案幫助了我。我在說「-lssl」。我需要添加「-lcrypto」。 –