如何修复明显损坏的CMake构建?

Ult*_*urd 25 cmake

我在源代码树上从CMakeSetup收到以下错误:

CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_FIND_LIBRARY_PREFIXES
Run Code Online (Sandbox Code Playgroud)

删除缓存没有帮助,因此其中一个CMakeLists中的某些内容必定存在问题.奇怪的是,如果我从旧版本的树中复制CMakeCache.txt并编辑它以使路径匹配,那么CMake将成功配置...并且,即使在删除该固定缓存后,它仍继续配置成功.

知道我应该寻找什么吗?

在生成错误的CMakeCache.txt时,有两个变量丢失:Project_BINARY_DIR和Project_SOURCE_DIR.

小智 40

您的项目是在顶部和基础CMakeLists.txt文件中声明的,或者至少必须在需要之前声明它,其中顶部是最容易的.看来这是cmake中的一个错误.http://www.mail-archive.com/cmake@cmake.org/msg13392.html

PROJECT(inkscape)

SET(INKSCAPE_VERSION 0.46+devel)
SET(PROJECT_NAME inkscape)
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6)
SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)

...
Run Code Online (Sandbox Code Playgroud)