我已經從源代碼(一個故意舊版本;用./config && make && make test
構建)構建OpenSSL,並且寧願使用我已經構建而沒有執行make install
來鏈接我的程序。將OpenSSL庫鏈接到程序
多數民衆贊成失敗的命令是:
gcc -Wall -Wextra -Werror -static -Lopenssl/openssl-0.9.8k/ -lssl -lcrypto
-Iopenssl/openssl-0.9.8k/include -o myApp source1.o source2.o common.o`
而且我收到了一系列類似的錯誤:
common.c:(.text+0x1ea): undefined reference to `SSL_write'
這讓我覺得有一些時髦與我的OpenSSL。如果我忽略-Lopenssl/openssl-0.9.8k/
從我的命令,錯誤更改爲暫時無法:
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
我是不是編譯OpenSSL的錯誤?或者我該如何最好地解決這個問題?
這是`-lssl -lcrypto`,需要在最後。當鏈接器掃描庫時,只鏈接已經存在未定義引用的函數。所以你需要把「消費」對象放在鏈接行的開始處,並在末尾放置「提供」對象。 – caf 2010-12-06 01:35:40
我總是很奇怪接受我自己的答案。我現在會切換它。 – mrduclaw 2014-03-29 15:10:50
它對llvm族有什麼不同? – saruftw 2017-06-13 19:05:26