QT交叉編譯外部庫(kù)

問(wèn)題:在X86環(huán)境下編譯沒(méi)問(wèn)題的HTTP工程想要進(jìn)行交叉編譯,鏈接的時(shí)候出現(xiàn)搜索到的庫(kù).so文件格式不對(duì)。

問(wèn)題很明顯,外部庫(kù)沒(méi)有進(jìn)行交叉編譯還是X86的格式,我們需要進(jìn)行單獨(dú)的編譯并安裝庫(kù),以openssl為例。
利用arm-none-linux-gnueabi-gcc交叉編譯openssl,生成靜態(tài)庫(kù)文件libcrypto.a ,libssl.a

  • 從openssl官網(wǎng)下載openssl最新版本openssl-1.0.2。下載地址:http://www.openssl.org/source/
  • 導(dǎo)入交叉編譯環(huán)境
 source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
  • 解壓openssl源碼,進(jìn)入目錄,執(zhí)行:
./config no-asm -shared --prefix=/usr/local/ssl-1.0.2/

配置,--prefix為安裝目錄
配置完成后:手動(dòng)修改生成的Makefile,并且找到有-m64的地方,全刪之(共2處)

  • 如有需要root權(quán)限安裝則
    sudo -s進(jìn)入root即可
    make & make install
    備注:這里遇到arm-poky-linux-gnueabi-arm-poky-linux-gnueabi-gcc找不到的問(wèn)題,一開(kāi)始以為環(huán)境變量沒(méi)配置好,仔細(xì)一看這個(gè)名字有問(wèn)題,前面和后面的arm-none-linux-重復(fù)了,能找到這個(gè)工具鏈才怪。這種問(wèn)題直接看Makefile,vim打開(kāi),查看編譯器的配置
image.png
  • 紅框中的原來(lái)是這樣的CC= $(CROSS_COMPILE)arm-poky-linux-gnueabi-gcc
    而CROSS_COMPILE變量又是arm-poky-linux-gnueabi-,所以最后拼出來(lái)一個(gè)arm-poky-linux-gnueabi-arm-poky-linux-gnueabi-gcc奇怪的名字,刪掉重復(fù)的部分就行了,問(wèn)題產(chǎn)生原因還沒(méi)找到。
  • 在qt-creater的pro文件中添加外部庫(kù)的連接
LIBS += -L/usr/local/ssl-1.0.2  -lcrypto

這時(shí)就可以正常的交叉編譯了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容