gpt4 book ai didi

CMake交叉编译: C flags from toolchain file ignored

转载 作者:太空狗 更新时间:2023-10-29 16:30:37 26 4
gpt4 key购买 nike

我使用 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")

最佳答案

我通过更换线路找到了一个临时解决方案

SET(CMAKE_C_FLAGS "-std=gnu99")

通过

SET(CMAKE_C_FLAGS "-std=gnu99" CACHE STRING "" FORCE)

关于CMake交叉编译: C flags from toolchain file ignored,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11423313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com