在CMake中修改CACHE变量不起作用

时间:2018-04-16 14:16:02

标签: cmake cmake-gui

我在Windows中使用CMake 3.10.2。

当我像这样使用CACHE设置变量时

SET(ABAQUS_MAJORVERSION 2016)
SET(ABAQUS_MAJORVERSION ${ABAQUS_MAJORVERSION} CACHE STRING "" )

当我在GUI中将ABAQUS_MAJORVERSION变量更改为2014时,此更改不会在CMake中更新。它不断生成2016版本。

请帮助这方面。 在此先感谢

EDIT1:

这是项目结构:

|CMakeLists.txt
|FindABAQUS.cmake
|-project1
|---source1.cpp
|---CMakeLists.txt which has SET(ABAQUS_MAJORVERSION 2016 CACHE STRING "")  
|-project2
|---source2.cpp
|---CMakeLists.txt which has SET(ABAQUS_MAJORVERSION 2016 CACHE STRING "")

我在GUI中将ABAQUS_MAJORVERSION更改为2014。 ABAQUS_MAJORVERSION在CMakeCache.txt文件中成为2014年。 但是当打印出消息($ {ABAQUS_MAJORVERSION})时,它会显示2016

解决方案:

example: SET(MAJORVERSION 2016 CACHE STRING "")

可能需要取消设置所有Include路径和库路径,以使新版本包含路径和库路径生效。

example: UNSET(INCLUDE_PATH CACHE)
         UNSET(LIBRARY_PATH CACHE)

0 个答案:

没有答案