【发布时间】:2012-07-10 12:28:24
【问题描述】:
我使用 cmake 进行交叉编译。在我的工具链文件中有一行
SET(CMAKE_C_FLAGS "-std=gnu99")
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})
avr.cmake:
SET(CMAKE_SYSTEM_NAME Generic)
SET(CMAKE_C_COMPILER avr-gcc)
SET(CMAKE_C_FLAGS "-std=gnu99")
【问题讨论】:
-
谢谢!我有这个确切的问题。
标签: c cmake cross-compiling flags