gpt4 book ai didi

c++ - 为什么 CMake 生成不带 CMAKE_CXX_FLAGS 的 Makefile?

转载 作者:行者123 更新时间:2023-11-30 02:22:02 24 4
gpt4 key购买 nike

这是我的完整 CMakeLists.txt 文件:

set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wshadow")

set(PROJECT sample)
project(${PROJECT})

set(HEADERS
Main.h
)
set(SOURCES
Main.cpp
)

# Add souce file to project for compile
add_executable (${PROJECT} ${HEADERS} ${SOURCES})

target_link_libraries( ${PROJECT} )

但是,在 Makefile 中,我不会从 CMAKE_CXX_FLAGS 中寻找子字符串“-Wall”和其他选项。

为什么?

最佳答案

CMAKE_CXX_FLAGS 变量最初是使用 project() 命令设置的。在 project() 命令之后移动 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ...")

来自 CMake Toolchains - Languages文档:

Languages are enabled by the project() command. Language-specific built-in variables, such as CMAKE_CXX_COMPILER, CMAKE_CXX_COMPILER_ID etc are set by invoking the project() command. If no project command is in the top-level CMakeLists file, one will be implicitly generated. By default the enabled languages are C and CXX.

引用资料

关于c++ - 为什么 CMake 生成不带 CMAKE_CXX_FLAGS 的 Makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47713164/

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