我使用cmake进行交叉编译.在我的工具链文件中有一行
SET(CMAKE_C_FLAGS "-std=gnu99")
Run Code Online (Sandbox Code Playgroud)
此变量未再次在CMakeLists.txt中设置.
当我运行cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake ..此标志被忽略.
更详细:显示一行flags.cmake空C_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)