最近在做远场语音项目,最终运行在 amlogic(aarch64)板子上,需要在我的 ubuntu 电脑上对代码交叉编译,对项目依赖库也要进行交叉编译。
下面记录 curl 交叉编译过程。
1, 安装交叉编译环境,我的 aarch64-linux-gnu,下载与你电脑对应的交叉编译器压缩包(http://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/aarch64-linux-gnu/)
2, 解压后配置环境变量,打开终端
$ export PATH=/usr/local/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin:$PATH
注意替换你自己的安装目录,测试交叉编译环境是否安装成功,在终端输入:
$ aarch64-linux-gnu-gcc -v
最后一行输出
gcc version 6.3.1 20170109 (Linaro GCC 6.3-2017.02)
表示安装成功。
3,github 上下载 curl
$ git clone https://github.com/curl/curl
4, 交叉编译 curl
sudo ./configure --target=aarch64-linux-gnu --host=aarch64-linux-gnu --prefix=/home/ksq/package/curl-arm --disable-threaded-resolver CC=/usr/local/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc sudo make sudo make install
--target
表示你要交叉编译目标平台
--host
交叉编译后运行平台
--prefix
交叉编译后存放目录
--disable-threaded-resolver
应该和线程有关,安装时报了 Threaded resolver enabled butno thread library found
这个错,所以禁用了
CC
指定交叉编译器,替换默认的 gcc 编译器。
./configure
后输出:
curl version: 7.57.0 Host setup: aarch64-unknown-linux-gnu Install prefix: /home/ksq/package/curl-arm Compiler: /usr/local/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc SSL support: no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} ) SSH support: no (--with-libssh2) zlib support: no (--with-zlib) brotli support: no (--with-brotli) GSS-API support: no (--with-gssapi) TLS-SRP support: no (--enable-tls-srp) resolver: default (--enable-ares / --enable-threaded-resolver) IPv6 support: enabled Unix sockets support: enabled IDN support: no (--with-{libidn2,winidn}) Build libcurl: Shared=yes, Static=yes Built-in manual: enabled --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) SSPI support: no (--enable-sspi) ca cert bundle: no ca cert path: no ca fallback: no LDAP support: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS support: no (--enable-ldaps) RTSP support: enabled RTMP support: no (--with-librtmp) metalink support: no (--with-libmetalink) PSL support: no (libpsl not found) HTTP2 support: disabled (--with-nghttp2) Protocols: DICT FILE FTP GOPHER HTTP IMAP POP3 RTSP SMTP TELNET TFTP
最后在我的电脑/home/ksq/package/curl-arm 目录下生成编译后的静态库和动态库。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于