因为要用到 libcurl 库的接口进行练习,而现在手上只有curl相关的头文件,那没办法只能下载源码进行编译了,这里记录一下编译 x86 与 hisi dv300 版本的动态库。
根据头文件 curlver.h 里的版本信息,我是直接下载 7.67.0 版本的源码 。
直接用命令下载:wget https://curl.se/download/curl-7.67.0.tar.gz
这种项目一般编译的流程就是 configure->make->make install,这个 configure 不常用,所以先看一下 help 吧:
常用的选项 --prefix=目录,就是编译后 make install 安装的目录,如果不指定 --prefix,即默认情况下安装目录为:`/usr/local/bin', `/usr/local/lib',如:
然后就是要编译哪个平台的了,选项 --host=xxx,如果不带此选项,默认是x86,我这里先编译 arm 版本的,所以执行 configure 时的参数为:
./configure --prefix=/home/tianyexing/Documents/code/cpp_code/libcurl/Lib --host=arm-himix200-linux
这个 arm-himix200-linux 是我 Linux 上已经安装的交叉编译器,这样执行出来是这样的:
可以看到配置了 --host 后,所配置的编译器为 arm-himix200-linux-gcc,这也正是我 Linux 安装的交叉编译器。然后执行 make
最后是编译成功了,而编译出来的目标文件都是在当前目录下,同时已经编译出了静态库和动态库,因为我只需要库,所以我就没再执行 make install 了(如果是安装到 Centos 下,完全就可以执行 configure->make->make install)。
看一下编译出来的是不是 arm 版本的库:
可以把 so 库拷贝到需要用到的地方,在编译的时候添加上链接库 -lcurl 即可。