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
相关推荐
天疆说12 分钟前
04 稳定性与性能调优实录:OOM 崩溃、并发槽位、前缀缓存与 DSpark 调参
linux·运维·缓存
星卯教育tony14 分钟前
NOI Linux 2.0 服务器多用户网页桌面部署方案(腾讯云轻量Ubuntu20.04专属版 CSP复赛比赛环境搭建免安装虚拟机 )
linux·服务器·腾讯云
Forever Nore1 小时前
LeetCode 14 最长公共前缀 - 纵向扫描
linux·服务器·leetcode
拂拉氏1 小时前
【知识讲解】 Linux权限相关知识讲解
linux·权限
Shadow(⊙o⊙)1 小时前
Linux网络部分——TCP协议服务端客户端交互接口,入门级硬核解析1.0
linux·网络·tcp/ip
桑榆4166 小时前
双系统(Windows + Ubuntu)安装流程
linux·windows·ubuntu
ltl12 小时前
实时 OS 巡礼:VxWorks、QNX、Zephyr 与 PREEMPT_RT
linux
我是谁??13 小时前
Ubuntu22.04更换清华源
linux·运维·服务器
Shell运维手记13 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
测试运维日常笔记15 小时前
Linux系统安装配置TigerVNC服务器完整指南
linux·运维·服务器