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

相关推荐
云泽8082 小时前
函数模板与类模板:C++泛型编程核心解析
java·开发语言·c++
R-G-B6 小时前
【25】MFC入门到精通——MFC静态文本框 中字符串 连续输出 不覆盖先前的文本 换行输出
c++·mfc·mfc静态文本框输出字符串·mfc静态文本框连续输出字符串·mfc静态文本框换行输出字符串
应用市场7 小时前
构建自定义命令行工具 - 打造专属指令体
开发语言·windows·python
FFZero18 小时前
【C++/Lua联合开发】 (二) Lua调用C++函数
c++·junit·lua
Dfreedom.8 小时前
一文掌握Python四大核心数据结构:变量、结构体、类与枚举
开发语言·数据结构·python·变量·数据类型
一半烟火以谋生8 小时前
Python + Pytest + Allure 自动化测试报告教程
开发语言·python·pytest
虚行8 小时前
C#上位机工程师技能清单文档
开发语言·c#
小羊在睡觉9 小时前
golang定时器
开发语言·后端·golang
CoderCodingNo9 小时前
【GESP】C++四级真题 luogu-B4068 [GESP202412 四级] Recamán
开发语言·c++·算法
一个不知名程序员www9 小时前
算法学习入门---双指针(C++)
c++·算法