linux 交叉编译 C和C++
在ubuntu 中搭建arm交叉编译环境的过程记录。
安装编译器
安装aarch64-linux-gnu编译器,可以参考
参考链接
安装完成后,可以到/usr/arm-linux-gnueabi目录下查看。
gcc-aarch64-linux-gnu -v
## 查看安装版本
Cmake中选择编译器
- 设置环境
可以放在对应的build.sh中。
export CC=/usr/bin/aarch64-linux-gnu-gcc
export CXX=/usr/bin/aarch64-linux-gnu-g++
- Cmake中参数设置
set (CMAKE_C_COMPILER "/usr/bin/aarch64-linux-gnu-gcc")
set (CMAKE_CXX_COMPILER "/usr/bin/aarch64-linux-gnu-g++")
project(main CXX C) # 这里可以不写CXX和C,但不能只写一个,否则只会编译指定语言
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") #设置c++的编译选项
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") #设置c的编译选项
aux_source_directory(./src dir_src) #指定路径,并产生变量${dir_src}
add_executable(main ${dir_src}) #指定代码目录
编译运行
正常cmake和make就可以了。
注意
使用aarch64-linux-gnu非默认编译器时,如果没有找到对应的链接库,需要手动添加路径或者将链接库文件拷贝到/usr/arm-linux-gnueabi/include 目录下。