Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多个Cmake_前缀_路径_Cmake - Fatal编程技术网

多个Cmake_前缀_路径

多个Cmake_前缀_路径,cmake,Cmake,在我开发的一个项目中,我们使用cmake来编译我们的服务。目前,我们需要从3个不同的位置获取Qt的数据,我很好奇是否有办法在三个单独的位置上运行一个cmake命令 我们目前使用的: cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\Qt\5.5\msvc2013\lib\cmake .. cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_P

在我开发的一个项目中,我们使用cmake来编译我们的服务。目前,我们需要从3个不同的位置获取Qt的数据,我很好奇是否有办法在三个单独的位置上运行一个cmake命令

我们目前使用的:

cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\Qt\5.5\msvc2013\lib\cmake ..
cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\protobuf\src ..
cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\protobuf\cmake\build\Release ..

我们已经尝试过三次传递相同的标志,并用
分隔路径
,但似乎没有一个按预期工作。

要在
CMAKE_PREFIX_PATH
变量中提供多个路径,您需要用
分隔每个条目(分号)。因此,您的命令将如下所示:

cmake -DCMAKE_PREFIX_PATH="C:\Qt\5.5\msvc2013\lib\cmake;C:\protobuf\src;C:\protobuf\c‌​make\build\Release"
要检查所提供的路径是否一切正常,可以在cmake文件中使用以下代码:

foreach(path ${CMAKE_PREFIX_PATH})
  message("Path: " ${path})
endforeach(path)

它将打印提供的每个路径。

您是否需要在
CMAKE\u PREFIX\u path
中输入多个条目,或者我误解了您的意思?如果是这样,请使用
-DCMAKE\u PREFIX\u PATH=“C:\Qt\5.5\msvc2013\lib\cmake;C:\protobuf\src;C:\protobuf\cmake\build\Release”
是的,前缀路径需要有多个条目。当我早些时候尝试时,它似乎没有像预期的那样工作,在第一个选项之后结束。我刚刚尝试了它,它按它应该的方式打印:
消息(“!!!!!”${CMAKE_PREFIX_PATH})
使用前面提到的字符串运行会产生以下结果:
!!!!!!C:\Qt\5.5\msvc2013\lib\cmakeC:\protobuf\srcC:\protobuf\C??make\build\Release
注意第三条路径中的问号。字符串有点不对劲-好像有些unicode字符在Jenkins 2.60.2和CMake 3.9.1中不起作用。
CMake-DCMAKE_PREFIX_PATH=/home/Olumide/src/project/Release/install/lib/CMake/home/Olumide/src/project/Release/cmake.
在cmake版本3.19.1中不起作用。(Ubuntu 18.04.5 LTS)