相关疑难解决方法(0)

CMake交叉编译:忽略工具链文件中的C标志

我使用cmake进行交叉编译.在我的工具链文件中有一行

SET(CMAKE_C_FLAGS "-std=gnu99")
Run Code Online (Sandbox Code Playgroud)

此变量未再次在CMakeLists.txt中设置.

当我运行cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake ..此标志被忽略.

更详细:显示一行flags.cmakeC_FLAGS =行.但在CMakeOutput.log我能找到一条线Build flags: -std=gnu99.

我发现第二次运行cmake ..(指定或不指定工具链文件)修复了这个问题.

但是为什么我第一次运行cmake时没有设置?

编辑:添加了MNWE

的CMakeLists.txt:

cmake_minimum_required(VERSION 2.6)
project(myproject)

SET(files src/main.c)

add_executable(myexec ${files})
Run Code Online (Sandbox Code Playgroud)

avr.cmake:

SET(CMAKE_SYSTEM_NAME Generic)

SET(CMAKE_C_COMPILER avr-gcc)

SET(CMAKE_C_FLAGS "-std=gnu99")
Run Code Online (Sandbox Code Playgroud)

c flags cmake cross-compiling

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1

cmake ×1

cross-compiling ×1

flags ×1