提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、三种方法实现简单的cmake 交叉编译
一种是命令行,一种是指定交叉编译文件,一种是cmake-gui指定编译器
二、前提
1.cmakelists.txt
代码如下(示例):
cmake_minimum_required(VERSION 3.7.1)
project(hello-world)
set(SOURCE_FILES main.c)
message(STATUS "This is BINARY dir " ${PROJECT_BINARY_DIR})
message(STATUS "This is SOURCE dir " ${PROJECT_SOURCE_DIR})
add_executable(hello-world ${SOURCE_FILES})
2.helloworld.c
##helloworld.c
#include <stdio.h>
int main() {
printf("Hello World.\n");
return 0;
}
3.jc.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER ${tools}/usr/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER ${tools}/usr/bin/arm-linux-gnueabihf-g++)
命令行
代码如下(示例):
cmake -D CMAKE_TOOLCHAIN_FILE="/path/to/jc.cmake" ..
之后执行make即可生成
jc.cmake
选择specify toolchain file for cross-compiling,并选择为jc.cmake,之后生成即可
cmake-gui选择第四种,specify options
![在这里插入图片描述](https://img-blog.csdnimg.cn/3b6601dee9b443b0ae9239b38ba31bc3.png#pic_center)
和jc.cmake里声明的类似,主要声明系统、架构、gcc、g++四个变量,也是相同的make,即可生成
之后执行make即可生成
总结
以上总结了三种可以交叉编译的方法