Linux c++进行交叉编译

1 .Docker运行文件目录

arduino 复制代码
Docker目录下安装环境:
sudo apt-get update        //更新安装包信息
sudo apt-get install build-essential        //安装编译器调试器(gcc、g++、gdb)
sudo apt-get install crossbuild-essential-arm64      //安装交叉编译工具链(aarch64-linux-gnu-gcc)
sudo apt-get install make cmake   // 安装 make和cmake

2.CMakeLists.txt

文件名不要错!!!!!!!

scss 复制代码
cmake_minimum_required(VERSION 3.5.1)

project(ublox)
set(PROJECT_VERSION 1.0)
set(CMAKE_CXX_STANDARD 11)

# 设置链接器标志 写法一
SET(GCC_COVERAGE_LINK_FLAGS "-static")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
# 设置链接器标志 写法二
#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")

add_executable(
	ublox 
	main.cpp
	)

# 将 pthread 库链接到 ublox 目标
target_link_libraries (ublox pthread)

3.CMake 本地编译结果

go 复制代码
build以此执行以下命令
make
cmake ..
file ublox

4.Toolchain-aarch64.cmake

bash 复制代码
# 设置系统名称为 Linux
set(CMAKE_SYSTEM_NAME Linux)
# 设置系统处理器为 aarch64
set(CMAKE_SYSTEM_PROCESSOR aarch64)
# 设置目标 ABI(Application Binary Interface)为 aarch64-linux-gnu
set(TARGET_ABI "aarch64-linux-gnu")
# 设置 C 编译器为 aarch64-linux-gnu-gcc
set(CMAKE_C_COMPILER     ${TARGET_ABI}-gcc)
# 设置 C++ 编译器为 aarch64-linux-gnu-g++
set(CMAKE_CXX_COMPILER   ${TARGET_ABI}-g++)

5.Cmake交叉编译

ini 复制代码
cmake -DCMAKE\_TOOLCHAIN\_FILE=../Toolchain-aarch64.cmake ..
make
file ublox
相关推荐
云计算练习生7 分钟前
linux shell编程实战 02 变量与交互式输入
linux·运维·shell编程·shell 变量
Dovis(誓平步青云)33 分钟前
《简易制作 Linux Shell:详细分析原理、设计与实践》
linux·运维·服务器
weixin_3077791336 分钟前
在Linux服务器上使用Jenkins和Poetry实现Python项目自动化
linux·开发语言·python·自动化·jenkins
爱宇阳1 小时前
Linux 教程:如何查看服务器当前目录中的文件
linux·运维·github
天才奇男子1 小时前
用户管理,权限管理
linux·云原生
wheeldown1 小时前
【Linux】Linux 进程通信:System V 共享内存(最快方案)C++ 封装实战 + 通信案例,4 类经典 Bug 快速修复
linux·运维·服务器·开发语言
Ching·1 小时前
linux系统编程(十②)RK3568 socket之 TCP 客户端的实现
linux·tcp/ip·rk3568
NiKo_W1 小时前
Linux 线程控制
linux·数据结构·内核·线程·进程·线程控制
迎風吹頭髮2 小时前
Linux内核架构浅谈44-Linux slab分配器:通用缓存与专用缓存的创建与使用
linux·spring·架构
---学无止境---2 小时前
Linux性能分析系统和虚拟文件系统缓存初始化
linux