gpt4 book ai didi

cmake - 为什么 if(DEFINED ) 在 cmake 中不起作用?

转载 作者:行者123 更新时间:2023-12-04 00:04:22 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





cmake DEFINED does not seems to recognize variable

(1 个回答)


3年前关闭。




根据 if 上的 CMake 文档关键词:

if(DEFINED <variable>)

True if the given variable is defined. It does not matter if the variable is true or false just if it has been set. (Note macro arguments are not variables.)


我有这个小的 CMakeLists.txt:
cmake_minimum_required(VERSION 2.6)
project(abc)
message("CMAKE_CXX_FLAGS_DEBUG 1: ${CMAKE_CXX_FLAGS_DEBUG}")
if(DEFINED ${CMAKE_CXX_FLAGS_DEBUG})
message("CMAKE_CXX_FLAGS_DEBUG 2: ${CMAKE_CXX_FLAGS_DEBUG}")
endif(DEFINED ${CMAKE_CXX_FLAGS_DEBUG})
message("CMAKE_CXX_FLAGS_DEBUG 3: ${CMAKE_CXX_FLAGS_DEBUG}")
这给出了 cmake path/to/CMakeLists.txt 上的下一个输出调用:
CMAKE_CXX_FLAGS_DEBUG 1: -g
CMAKE_CXX_FLAGS_DEBUG 3: -g
-- Configuring done
-- Generating done
-- Build files have been written to: current/dir
第二行在哪里?
CMAKE_CXX_FLAGS_DEBUG 2: -g

最佳答案

使用 if(DEFINED <variable>)不是 if(DEFINED ${<variable>}) .也就是说,直接使用变量名,不要在if中展开(除非它包含您实际想要测试的另一个变量的名称)。

关于cmake - 为什么 if(DEFINED <variable>) 在 cmake 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51621228/

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