环境:ubuntu16.04 x64, arm-linux-gcc (Sourcery G++ Lite 2010.09-50) 4.5.1
1. OPENSSL的交叉编译安装(以1.0.0e为准)
源码下载地址:https://www.openssl.org/source/openssl-1.0.0e.tar.gz
下载后按如下指令进行编译安装:
tar -xvf openssl-1.0.0e.tar.gz
cd openssl-1.0.0e
./config CC=arm-none-linux-gnueabi-gcc --prefix=/opt/arm-cross-tools/openssl
make
make install
安装完成后把/opt/arm-cross-tools/openssl/lib所有文件超链接到交叉编译器的arm-linux-gcc/arm-none-linux-gnueabi/lib下,/opt/arm-cross-tools/openssl/include/openssl目录超链接到arm-linux-gcc/arm-none-linux-gnueabi/include下,超连接名字为openssl。(超链接之后,交叉编译Poco时就无需再修改源码配置openssl路径了)
2. 编译STLport
源码下载地址:https://nchc.dl.sourceforge.net/project/stlport/STLport/STLport-5.2.1/STLport-5.2.1.tar.bz2
下载后按如下指令进行编译安装:
tar -xvf STLport-5.2.1.tar.bz2
修改文件:STLport-5.2.1/stlport/stl/_cstdlib.h,
94行由# if !defined(__sun)替换为
# if !defined(__sun) && !defined (__arm__) && !defined (__sh__)
150行由# if !defined (__sun)替换为
# if !defined (__sun) && !defined (__arm__) && !defined (__mips__) && !defined (__mipset__) && !defined (__sh__)
cd STLport-5.2.1
./configure --target=arm-linux --prefix=/opt/arm-cross-tools/STLportmake
make install
cd /opt/arm-cross-tools/STLport/arm-linux-lib
ln -s -f libstlport.so libstlport_arm-linux-gcc.so
安装完成后把/opt/arm-cross-tools/STLport/lib所有文件超链接到交叉编译器的arm-linux-gcc/arm-none-linux-gnueabi/lib下,/opt/arm-cross-tools/STLport/include/stlport目录超链接到arm-linux-gcc/arm-none-linux-gnueabi/include下,超连接名字为stlport。(超链接之后,交叉编译Poco时就无需再修改源码配置stlport路径了)
3. 编译安装Poco
源码下载地址:https://pocoproject.org/releases/poco-1.7.8/poco-1.7.8-all.tar.gz
tar -xzvf poco-1.7.8-all.tar.gz
cd poco-1.7.8-all
./configure --config=ARM-Linux --no-tests --no-samples --omit=Data/ODBC,Data/MySQL --prefix=/opt/arm-cross-tools/Poco --static --shared
make
make install
到此Poco就交叉编译安装完成了。