Linux下libcurl的編譯和交叉編譯


 

一、下載curl源碼

下載地址:https://curl.haxx.se/download/ 

 

 

 

二、創建目標輸出目錄

  我創建了兩個,一個放linux版本、一個放arm版本。

  # mkdir build_linux build_arm

 

 

三. 解壓文件

  # tar -xvf  curl-7.63.0.tar.xz

  

 

四. 配置並編譯

Linux版本: (--prefix指定編譯輸出安裝路徑 --enable-static 指定編譯靜態庫)

# ./configure --prefix=/home/gec/csdn/curl/build_linux --enable-static
# make
# make install


ARM版本:(--prefix指定編譯輸出安裝路徑 --enable-static 指定編譯靜態庫 CC指定交叉編譯工具鏈)

# ./configure --host=arm-linux CC=arm-linux-gcc --prefix=/home/gec/csdn/curl/build_arm --enable-static
# make
# make install

1.此處的 --enable-static 加上沒效果,最后還是動態鏈接。至少這個版本是這樣的

2.--prefix后面一定要是絕對路徑,不能是相對路徑

 

 

五.移植到arm平台上,因為上面的 --enable-static 選項沒起作用,需要將用到的庫復制到對應路徑,這里變態的不是從默認的/lib目錄下讀取庫文件

1.先到libcurl/bin下 readelf -d curl 查看curl的所需的庫文件及庫目錄

我這里顯示庫的路徑是:“Library rpath: [/home/arm/share/4.開源庫/curl-7.63.0/xxx/lib]”


2. 在開發板上要創建同樣的路徑名字,並將庫文件全部復制

    mkdir /home/arm/share/4.開源庫/curl-7.63.0/xxx/lib -p

    cp /nfs/4.開源庫/curl-7.63.0/xxx/lib/  /home/arm/share/4.開源庫/curl-7.63.0/xxx/lib/

 

 

  如果不做上述操作,執行curl命令時,不管后面是什么,一律返回:curl: (48) Error,也不提示是不是缺少庫所造成的!

 

  六. 復制bin下面的curl到開發板上,路徑隨意

 

 

 參考

  不需要openssl

https://blog.csdn.net/fangye945a/article/details/86500817

https://www.jianshu.com/p/4688db3e2fdc

 

需要openssl

https://www.cnblogs.com/hesetone/p/13724866.html

https://blog.csdn.net/yao00037/article/details/118001062

 

  

 

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM