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

 

  

 

 

   

posted @ 2021-11-09 17:44  迷人的危险~  阅读(3633)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css