妈的,打了一大堆的字,提交发布文章的时候,提示error 500. 当时就是一个wocao。重新打。

前言:公司需要一个自动升级程序的环境,公司也不愿意花时间自己开发一个 http client 随后我就选择了 curl。
当然,我这里在编译 curl 的过程中疯狂踩坑了一周左右,因为我们公司的工控机盒子实在台low了。硬盘只有256M。

下面给出适用于 arm335x armv7l 系统的 正确编译参数

root@am335x:~/service# uname -a
Linux am335x 3.2.0 #595 Wed Jan 31 00:13:29 PST 2018 armv7l GNU/Linux

{mtitle title="CURL的编译参数"/}

./configure CC=/usr/bin/arm-none-linux-gnueabihf-gcc CXX=/usr/bin/arm-none-linux-gnueabihf-g++ AR=/usr/bin/arm-none-linux-gnueabihf-ar RANLIB=/usr/bin/arm-none-linux-gnueabihf-gcc-ranlib \
--host=arm-linux  \
--disable-shared --enable-static  \
--with-openssl \
--without-ssl \
--with-zlib=/home/dev/Projects/Shattrath/arm/include \
--with-libssh2=/home/dev/Projects/Shattrath/arm/include \
--enable-zlib \
--enable-ares \
--enable-threaded-resolver \
--enable-tls-srp  \
--enable-sspi \
--enable-dict \
--enable-ftp \
--enable-imap \
--disable-ldap \
--disable-ldaps \
--enable-pop3 \
--enable-proxy \
--disable-rtsp \
--enable-smtp \
--enable-telnet \
--enable-tftp \
--enable-ca-bundle \
--enable-gnutls \
--without-libidn \
--enable-librtmp \
--enable-nss \
--disable-ech \
--prefix=/home/dev/Projects/Shattrath/arm \
LDFLAGS="-L/home/dev/Projects/Shattrath/arm/lib -Wl,-rpath=/dynamic/ -Wl,--dynamic-linker=/dynamic/ld-linux-armhf.so.3" \
CPPFLAGS="-I/home/dev/Projects/Shattrath/arm/include -L/home/dev/Projects/Shattrath/arm/lib" \
LIBS="-lcares -lz -lssh2 -lssl -lcrypto -lpthread -ldl -lrt"

{mtitle title="OPENSSL的编译参数"/}

// https://blog.csdn.net/zhensansan/article/details/100976016
// https://bbs.csdn.net/topics/392316559
// 重点说一下:如果要实现一个交叉跨平台一定要使用 setarch linux32 或者 setarch i386 如果是64位的arm 就填写对应的平台,具体什么原因,我不知道,我菜了。
setarch linux32 ./config -Wl,-rpath=/dynamic/ -Wl,--dynamic-linker=/dynamic/ld-linux-armhf.so.3 no-asm -march=armv7-a -D__ARM_MAX_ARCH__=7 zlib \
--with-zlib-include=/home/dev/Projects/Shattrath/arm/include --with-zlib-lib=/home/dev/Projects/Shattrath/arm/lib \
--prefix=/home/dev/Projects/Shattrath/arm \
--openssldir=/home/dev/Projects/Shattrath/arm/openssl --cross-compile-prefix=arm-none-linux-gnueabihf-

说一下,为何我要这么麻烦,因为我不能远程调试啊,256M的硬盘无法安装gdb。不能远程调试,只能靠log log log。

标签: none

评论已关闭