我想交叉編譯C++程序,它使用一些OpenSSL的文件:Eclipse CDT的 - 鏈接libcrypto.so交叉編譯
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/bio.h>
#include <openssl/err.h>
因爲交叉編譯器(/opt/crosstool/arm-none-linux-gnueabi/include
)的路徑是不同的默認/usr/include
路徑,其中所有的OpenSSL頭文件,我必須設置包含路徑,右鍵單擊項目 - >屬性 - > C/C++常規 - >路徑和符號 - >添加... - >/usr/include
以包括頭文件。
同樣與libcrypto.so:
... C/C++常規 - >庫 - >添加... crypto
... C/C++常規 - >庫路徑 - >添加... /usr/lib/i386-linux-gnu
(此文件夾中,我發現了librypto.so)
當構建項目中,我得到以下錯誤:
/opt/crosstool/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libcrypto.so when searching for -lcrypto
/opt/crosstool/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libcrypto.a when searching for -lcrypto
/opt/crosstool/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lcrypto
似乎是一個鏈接錯誤,但我不知道爲什麼。感謝幫助。
你正在使用哪個版本的OpenSSL?它來自哪裏:'/ opt/crosstool/arm-none-linux-gnueabi'? (好吧,我正在設置一個測試裝置來測試一個答案)。 – jww
我使用1.0.1版本。路徑是我的交叉編譯器的路徑,它是安裝我的交叉編譯器後的默認路徑。在這個路徑中,我有我的嵌入式硬件所需的所有文件夾,一些額外的硬件庫以及默認庫(和頭文件),但不包括OpenSSL庫。我試圖將libcrypto.so文件複製到交叉編譯器的文件夾中,但仍然是相同的錯誤。 – Snowman