环境
- 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/
,它的目录结构类似下面这样
为了在 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
./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
可执行程序,可以直接运行 bin/curl
;如果是要基于 curl
做上层应用,将 include
和 lib
文件夹放到自己的项目中就可以进行。