我有定义字符串的问题 如果我有源代码
static const QStringList g_arrGenersControllerCommonLibDefinitions(QString(U_LIBS).split(";"));
如何在cmake中指定他写入变量 像这样
add_definitions(-DU_LIBS="${U_LIBS}")
答案 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。