我在 CMakeLists.txt 文件中有以下行:
include_directories(${QWT_INCLUDE_DIR})
我需要在这里添加两个包含目录,例如
include_directories("C:/v_g/qwt-6.2.0/src" "C:/v_g/qwt-6.2.0/classincludes")
现在,我不想在我的 CMakeLists.txt 文件中对这些进行硬编码。相反,我想使用带有变量
QWT_INCLUDE_DIR
的第一个版本,它当然必须包含两个包含目录的路径,如图所示。
我了解到我不能用分号分隔两条路径。
我必须用空格将它们分开。
从命令行我需要类似的东西
cmake .. -G "MinGW Makefiles" -DQWT_INCLUDE_DIR="C:/v_g/qwt-6.2.0/src" "C:/v_g/qwt-6.2.0/classincludes" -DQWT_LIBRARY="C:/v_g/qwt-6.2.0/lib/qwt.dll"
或
cmake .. -G "MinGW Makefiles" -DQWT_INCLUDE_DIR="C:/v_g/qwt-6.2.0/src;C:/v_g/qwt-6.2.0/classincludes" -DQWT_LIBRARY="C:/v_g/qwt-6.2.0/lib/qwt.dll"
两者都不起作用,因为它们没有将正确的格式设置为变量
QWT_INCLUDE_DIR
。
在命令行中使用
-DQWT_INCLUDE_DIR
参数的正确方法是什么?
您是否尝试过使用分号,例如:
cmake . -DQWT_INCLUDE_DIR="C:/v_g/qwt-6.2.0/src;C:/v_g/qwt-6.2.0/classincludes"
如果我这样做,使用以下 CMakeLists.txt 我会得到以下输出:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.12.0)
project(test)
foreach(ITEM ${QWT_INCLUDE_DIR})
message(STATUS ${ITEM})
endforeach()
输出:
-- C:/v_g/qwt-6.2.0/src
-- C:/v_g/qwt-6.2.0/classincludes
这表明我应该将其正确解释为
include_directories
命令的列表。