CMake 使用 ExternalProject 出现错误

5
两天前,我添加了一个外部项目,使用autotools编译项目。直到今天,它都完美地工作着...
但是我遇到了一个奇怪的错误:
CMake Error at /usr/share/cmake-2.8/Modules/ExternalProject.cmake:710 (message): error: no download info for 'libantlr3c' -- please specify existing SOURCE_DIR or one of URL, CVS_REPOSITORY and CVS_MODULE, SVN_REPOSITORY or DOWNLOAD_COMMAND
其中一个规则已经被指定了(SOURCE_DIR):
cmake_minimum_required(VERSION 2.8)
# ...
include(ExternalProject)
ExternalProject_Add(
  libantlr3c
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3/configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  BUILD_COMMAND make
  BUILD_IN_SOURCE 1
)

所以这个错误没有任何意义...而且昨天它还能完美地工作(到现在为止什么也没有改变)。

有什么想法吗?

谢谢!

2个回答

3

这是2.8.0版本中的一个漏洞。请安装2.8.3或更高版本...


3
我曾经遇到过类似的问题,即使使用了2.8.6版本,文档也没有太大的帮助。我在网上找到了一个示例,给了我需要的提示。
你需要使用URL参数,但有一个陷阱。如果你只给它目录路径,它会认为你要指向一个存档,而不是一个目录。你必须在你的路径前加上"file://",例如:
ExternalProject_Add(
  libantlr3c
  URL file://${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3/configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  BUILD_COMMAND make
  BUILD_IN_SOURCE 1
)

现在我只需要弄清楚(在我的项目中)为什么它正在寻找<project>-mkdir,而这个东西并不存在。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接