Opencv 如何使用新生成器重新使用现有的CMake变量
我需要在VS2015中为32位和64位构建OpenCV 我知道每个生成器都需要一个单独的构建树 OpenCV的CMake配置有大约300个用户可配置的变量,我终于满意地设置了这些变量。现在我想使用完全相同的决策集来构建64位版本 有没有办法将代表我的决策的变量值转移到新的构建树中?(除了并排打开两个CMake GUI并检查所有~300个值是否对应之外。) 顺便说一句,如果更改了生成器,则必须根据CMake邮件列表[]删除CMakeCache.txt。手动编辑它非常危险,可能会导致未定义的行为 谢谢你把我的评论变成了答案 您可以在新目录中使用部分Opencv 如何使用新生成器重新使用现有的CMake变量,opencv,cmake,Opencv,Cmake,我需要在VS2015中为32位和64位构建OpenCV 我知道每个生成器都需要一个单独的构建树 OpenCV的CMake配置有大约300个用户可配置的变量,我终于满意地设置了这些变量。现在我想使用完全相同的决策集来构建64位版本 有没有办法将代表我的决策的变量值转移到新的构建树中?(除了并排打开两个CMake GUI并检查所有~300个值是否对应之外。) 顺便说一句,如果更改了生成器,则必须根据CMake邮件列表[]删除CMakeCache.txt。手动编辑它非常危险,可能会导致未定义的行为 谢
CMakeCache.txt
(CMake只需预加载其中的值,然后重新评估其余的值)
因此,您可以使用类似grep的方法
findstr "OpenCV_" CMakeCache.txt > \My\New\Path\CMakeCache.txt
刚刚测试过它,似乎工作正常
参考
- 将我的评论转化为答案
您可以在新目录中使用部分
CMakeCache.txt
(CMake只需预加载其中的值,然后重新评估其余的值)
因此,您可以使用类似grep的方法
findstr "OpenCV_" CMakeCache.txt > \My\New\Path\CMakeCache.txt
刚刚测试过它,似乎工作正常
参考
CMakeCache.txt
(CMake只需预加载存在的值,然后重新评估其余的值)。因此,您可以使用类似于grep
的方法,查找dstr“OpenCV”cmakcache.txt>\My\New\Path\cmakcache.txt。刚刚测试过它,似乎和预期的一样。可能的副本不一样。它建议重新使用cmakcache.txt来重复完全相同的构建。如果更改了生成器,则应删除CMakeCache.txt,因为几乎不可能确保其中存储的所有内容与新生成器一致。我理解你的观点。但是也允许使用部分CMakeCache.txt
(CMake只需预加载存在的值,然后重新评估其余的值)。因此,您可以使用类似于grep
的方法,查找dstr“OpenCV”cmakcache.txt>\My\New\Path\cmakcache.txt。刚刚测试了它,看起来像预期的那样工作。这是一个很好的努力,所以我会把它标记为答案,但我没有实际测试它。这是一个很好的努力,所以我会把它标记为答案,但我没有实际测试它。