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
C++ 如何使用CMake拥有多个二进制目录?_C++_Cmake - Fatal编程技术网

C++ 如何使用CMake拥有多个二进制目录?

C++ 如何使用CMake拥有多个二进制目录?,c++,cmake,C++,Cmake,在我的团队中,我们创建了一个库。我们使用cmake和多个第三方库。我们使用cmake命令ExternalProject\u Add下载并构建第三方库(在编译时完成) 问题是,当我们清除build目录以重新构建库时,第三方库会再次下载,这很烦人 我想知道是否有一种方法可以为第三方库指定另一个构建目录,这样它们就可以被“缓存”了 一个解决方案可以是在构建目录之外安装第三方库,方法是更改安装部件的位置,例如使用ExternalProject\u Add()的选项install\u DIR,我已经查看了

在我的团队中,我们创建了一个库。我们使用
cmake
和多个第三方库。我们使用
cmake
命令
ExternalProject\u Add
下载并构建第三方库(在编译时完成)

问题是,当我们清除build目录以重新构建库时,第三方库会再次下载,这很烦人


我想知道是否有一种方法可以为第三方库指定另一个构建目录,这样它们就可以被“缓存”了

一个解决方案可以是在构建目录之外安装第三方库,方法是更改安装部件的位置,例如使用
ExternalProject\u Add()

的选项
install\u DIR
,我已经查看了文档一段时间了,但从未注意到/想到要使用它。我试试看,谢谢@dooxe不客气,也可以考虑/尝试使用CMake的
-DCMAKE\u install\u prefix
或配置脚本的
-prefix
为外部项目指定安装前缀。我刚刚尝试过,效果很好。谢谢!