2
我有一個定義的字符串 的問題,如果我在源代碼中的cmake作爲定義
static const QStringList g_arrGenersControllerCommonLibDefinitions(QString(U_LIBS).split(";"));
我怎樣才能在cmake的規定,他寫信給一個變量 這樣
add_definitions(-DU_LIBS="${U_LIBS}")
我有一個定義的字符串 的問題,如果我在源代碼中的cmake作爲定義
static const QStringList g_arrGenersControllerCommonLibDefinitions(QString(U_LIBS).split(";"));
我怎樣才能在cmake的規定,他寫信給一個變量 這樣
add_definitions(-DU_LIBS="${U_LIBS}")
我怎樣才能在指定的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。