• C++_跨平台编译_cmakefile中_添加内容


    C++_跨平台编译_cmakefile.txt中_添加内容, 包含

    cmakefile.txt中

    1. 系统架构(aarch64)

    2. gcc g++编译器位置

    3. 架构指定: march

    4. 你的root一些基础的lib, bin文件路径 (YOUR_SYSROOT)

    # 在x86上, 编译linux系统下 aarch64版本的库文件:

    SET(CMAKE_SYSTEM_NAME Linux)
    SET(CMAKE_SYSTEM_PROCESSOR aarch64)
    SET(CMAKE_SYSROOT ${YOUR_SYSROOT})

    SET(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc-7)
    SET(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++-7)

    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a")
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a")

    # 可选:

    SET(CMAKE_Fortran_COMPILER aarch64-linux-gnu-gfortran-7)
    SET(CMAKE_AR aarch64-linux-gnu-ar)
    SET(CMAKE_RANLIB aarch64-linux-gnu-ranlib)
    SET(CMAKE_STRIP aarch64-linux-gnu-strip)

    # SET(CMAKE_THREAD_LIBS_INIT "-lpthread")

    注意: 若有多个 CMakefile.txt, 以上内容添加一个就可以. 

    shell脚本形式

    然后若不想修改CMakefile.txt, 可以使用your_shell.sh也是一样的

    进入 src所在目录,  新建 your_shell.sh

    如命名为"build_arm64_in_x86.sh", 内容如下: 

    #!/bin/bash

    MYARM_SYSROOT=/your-sysroot

    # 设置环境变量

    # specify cross toolchain

    # SET(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc-7)

    # SET(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++-7)

    # SET(CMAKE_Fortran_COMPILER aarch64-linux-gnu-gfortran-7)

    # SET(CMAKE_AR aarch64-linux-gnu-ar)

    # SET(CMAKE_RANLIB aarch64-linux-gnu-ranlib)

    # SET(CMAKE_STRIP aarch64-linux-gnu-strip)

    export CC=/usr/bin/aarch64-linux-gnu-gcc-7

    export CXX=/usr/bin/aarch64-linux-gnu-g++-7

    export FC=/usr/bin/aarch64-linux-gnu-gfortran-7

    export AR=/usr/bin/aarch64-linux-gnu-ar

    export RANLIB=/usr/bin/aarch64-linux-gnu-ranlib

    export STRIP=/usr/bin/aarch64-linux-gnu-strip

    # 其他定制设置 (可选?)

    # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a")

    # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a")

    export CFLAGS="-march=armv8-a"

    export CXXFLAGS="-march=armv8-a"

    export CMAKE_THREAD_LIBS_INIT="-lpthread"

    mkdir -p build && cd build

    # 调用 CMake

    ../cmake-3.29.2-linux-x86_64/bin/cmake --version

    ../cmake-3.29.2-linux-x86_64/bin/cmake \

    -DCMAKE_SYSTEM_NAME=Linux \

    -DCMAKE_SYSTEM_PROCESSOR=aarch64 \

    -DCMAKE_SYSROOT=${MYARM_SYSROOT} \

    ..

    # 构建步骤

    make -j1

  • 相关阅读:
    Java面向对象编程
    c语言练习3
    阿里三面:MQ 消息丢失、重复、积压问题,怎么解决?
    DataTable 几个扩展小功能
    C++11 ——— 可变参数模板
    天宇优配|平台助企“抱团出海” “小而美”中觅“先机”
    各行各业都受到重创,游戏行业却如火如荼,如何加入游戏模型师职业
    vue3.0项目实战系列文章 - 使用周期函数
    【IEEE出版】工业自动化,机器人与控制工程国际会议(IARCE 2022)
    化繁为简,国内知名期货交易所依托 MogDB 数据库促信创改造项目提速
  • 原文地址:https://blog.csdn.net/shyjhyp11/article/details/138183803