在cmake中使用变量作为定义

时间:2017-08-19 12:06:02

标签: cmake

我有定义字符串的问题 如果我有源代码

static const QStringList g_arrGenersControllerCommonLibDefinitions(QString(U_LIBS).split(";"));

如何在cmake中指定他写入变量 像这样

add_definitions(-DU_LIBS="${U_LIBS}")

1 个答案:

答案 0 :(得分:0)

  

如何在cmake中指定

问题不在CMake中,而在gcc中。当您通过CMake传递定义时,它会在没有转义的情况下到达gcc。您可以尝试make VERBOSE=1查看。

这是一个解决方案:

cmake_minimum_required (VERSION 2.8)

project (CMPD)
find_package (Qt5Core REQUIRED)

set (U_LIBS)
set (U_LIBS "${U_LIBS}/usr/lib/libu.so")
set (U_LIBS "${U_LIBS}\\\;/usr/lib/libu.so.0")
set (U_LIBS "${U_LIBS}\\\;/usr/lib/libu.so.0.0")
set (U_LIBS "${U_LIBS}\\\;/usr/lib/libu.so.0.0.0")
add_definitions(-DU_LIBS="${U_LIBS}")

add_executable (cmpd ${PROJECT_SOURCE_DIR}/main.cpp)
target_link_libraries (cmpd Qt5::Core)

输出:

("/usr/lib/libu.so", "/usr/lib/libu.so.0", "/usr/lib/libu.so.0.0", "/usr/lib/libu.so.0.0.0")

来源可用here