有时候我们可能需要使用CmakeLists.txt中定义的变量,这里给出一个实际例子。
首先,在Cmakelists中定义变量,这里必须用add_definitions()来实现。
cmake_minimum_required(VERSION 3.15)
project(test VERSION 0.1.0)
set(CMAKE_CXX_STANDARD 11)
include_directories(include)
set(a "/home/wsw/test/c++")
#定义变量,用-D开头,后面跟字符串,相当于一个宏_VAR,其内容是一个字符串,\"是转义字符,${a}是一个引用变量,用上面的set(a "/home/wsw/test/c++")中的字符串替换
ADD_DEFINITIONS(-D_VAR=\"${a}\")
add_executable(test src/testadd.cpp)
使用变量:
#include <iostream>
// #ifdef _VAR
// #define TXT _VAR
// #else
// #define TXT "nobody"
// #endif
int main(int argc, char* argv[]){
printf("%s\n",_VAR);
std::cout<<"hello"<<_VAR<<std::endl;
}
这里如果确定Cmakelist中已经定义了_VAR变量,就可以直接使用,如果不确定,则可以使用ifdef来判断一下。

本文介绍了如何在CMakeLists.txt文件中定义变量并将其传递到源代码中使用的方法。通过add_definitions()函数定义了一个_VAR变量,并展示了如何在C++源代码中直接使用或通过预处理器条件判断使用该变量。
6002

被折叠的 条评论
为什么被折叠?



