美文网首页
交叉编译POCO

交叉编译POCO

作者: supremecsp | 来源:发表于2022-03-19 23:45 被阅读0次

    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,公司项目编译,查看可执行文件格式

    相关文章

      网友评论

          本文标题:交叉编译POCO

          本文链接:https://www.haomeiwen.com/subject/tjindrtx.html