交叉编译POCO
2022-03-19 本文已影响0人
supremecsp
C++项目要提供给其他操作系统平台使用,需要我根据arm工具链进行编译后提供相应的头文件和库。项目中用到了POCO第三方库,接下来简单介绍下交叉编译过程
1,Ubuntu上一篇安装了openssl,为了以防环境污染需要先卸载
openssl version
apt-get purge openssl
备份下证书目录,待恢复
zip -r ssl.zip /etc/ssl/*
rm -rf /etc/ssl
2,修改环境编译,调整gcc,gcc-c++与动态链接库读取路径
vim /etc/profile
export CC=/disk/tools/aarch32-rockchip-linux-toolchain/bin/arm-linux-gcc
export CXX=/disk/tools/aarch32-rockchip-linux-toolchain/bin/arm-linux-g++
export LD_LIBRARY_PATH=/disk/tools/aarch32-rockchip-linux-toolchain/lib
source /etc/profile
3,下载openssl后用工具链重新进行编译
https://www.openssl.org/source/old/1.1.1/
tar -zxvf openssl-1.1.1m.tar.gz
cd openssl-1.1.1m/
./config no-asm --prefix=/usr/local/ssl
sed -i 's/-m64//' Makefile
make
make install
cd /usr/local/ssl/lib
file libcrypto.so.1.1
删去-m64原因可浏览该博客https://blog.csdn.net/wkd_007/article/details/122477229
4,建立头文件软连接与动态库读取路径
ln -s /usr/local/ssl/include/openssl /disk/tools/aarch32-rockchip-linux-toolchain/include/openssl
vim /etc/ld.so.conf
在文末插入一行
/usr/local/ssl/lib
执行
ldconfig
5,修改poco文件
vim /disk/tools/poco-poco-1.9.4-release/build/config/ARM-Linux
修改TOOL属性
6,编译POCO
./configure --config=ARM-Linux --no-tests --no-samples --omit=Data/ODBC --prefix=/usr/local/poco --static --shared
make -j4
make install
出现异常:error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory
找不到工具类的动态库文件,修改ld.so.conf文件
vim /etc/ld.so.conf
在文末插入一行
/disk/tools/aarch32-rockchip-linux-toolchain/lib
执行
ldconfig
7,对象存储COS编译
https://cloud.tencent.com/document/product/436/12301
将POCO动态库拷贝到工具链对应lib目录后进行编译
8,公司项目编译,查看可执行文件格式