c++在ubuntu交叉编译
ubuntu中交叉编译
1.安装交叉编译工具链64位
1 | sudo apt update |
查看版本
1 | aarch64-linux-gnu-gcc --version |
此时交叉编译工具链gcc在/usr/bin/aarch64-linux-gnu-gcc
,g++在/usr/bin/aarch64-linux-gnu-g++
头文件和库在/usr/aarch64-linux-gnu
下
2.测试
写入main.cpp文件
1 | //main.cpp |
编译
1 | aarch64-linux-gnu-g++ main.cpp -o main |
查看相关信息
1 | file main |
main: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=bef44d88a3fff0790aadba3fa7c98ee937915af8, for GNU/Linux 3.7.0, not stripped
3.使用cmake
先写一个简单的项目
main.cpp
1 | //main.cpp |
CMakeLists.txt
1 | #CMakeLists.txt |
编译
1 | cmake -S . -B build |
运行
1 | ./build/test |
hello!this is haiyue embreded world!
说明项目可以运行。
4.cmake配置交叉编译
方式1(不推荐)-直接在CMakeLists.txt指定
1 | #CMakeLists.txt |
方式2(推荐)-通过 CMAKE_TOOLCHAIN_FILE指定
新建文件aarch64-linux-gnu.cmake
1 | #aarch64-linux-gnu.cmake |
编译指定工具链文件-DCMAKE_TOOLCHAIN_FILE=aarch64-linux-gnu.cmake
即可
1 | cmake -S . -B build2 -DCMAKE_TOOLCHAIN_FILE=aarch64-linux-gnu.cmake |
Windows中交叉编译
在windows中类似,需要下载好对应的交叉编译工具
并新建一个aarch64-linux-gnu.cmake
文件,在其中指定好对应的编译器地址
在构建时指定对应的CMAKE_TOOLCHAIN_FILE,即可
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 xd's blog!
评论