欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

curl 交叉编译

C/C++ 迷途小书童 2年前 (2023-01-10) 1626次浏览 0个评论

环境

  • ubuntu 18.04 64bit
  • curl 7.87.0
  • arm-linux-gnueabihf

实操

到官网下载最新的压缩包 7.87.0 版本,https://curl.se/download.html,然后解压

tar xvf curl-7.87.0.tar.gz
cd curl-7.87.0

接下来准备下交叉编译工具链,这个一般是由方案厂家提供的,比如我这里用的是 /usr/local/linaro/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/,它的目录结构类似下面这样

curl

为了在 shell 中能够找到对应的编译命令,需要修改下系统环境变量 PATH

export PATH=/usr/local/linaro/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin:$PATH

设置完后,立马生效,且是一次性有效。如想长期有效,可以将上述 export 语句加入到 ~/.bashrc 文件末尾

最后来验证下环境,执行命令 arm-linux-gnueabihf-gcc -v

curl

接下来就开始编译 curl

./configure --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf CC=/usr/local/linaro/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc --prefix=/home/longjing/xgx/curl-7.87.0/build
make 
make install

其中,

  • --target 是指交叉编译的目标平台
  • --host 是指编译后运行在哪个平台
  • --prefix 是指编译生成的文件存放的目录,如可执行文件、静态/动态库文件等
  • CC 是指交叉编译器

configure 可以添加很多的特性,大家根据自己的实际情况添加。编译完成后,build 文件夹目录结构是这样的

curl

这时候,如果想在对应方案的开发板上使用 curl 可执行程序,可以直接运行 bin/curl;如果是要基于 curl 做上层应用,将 includelib 文件夹放到自己的项目中就可以进行。

喜欢 (0)

您必须 登录 才能发表评论!