5

两天前,我添加了一个外部项目来使用 autotools 编译一个项目。直到今天它都可以正常工作...

我有一个奇怪的错误:

/usr/share/cmake-2.8/Modules/ExternalProject.cmake:710(消息)处的 CMake 错误:错误:没有“libantlr3c”的下载信息——请指定现有的 SOURCE_DIR 或 URL、CVS_REPOSITORY 和 CVS_MODULE、SVN_REPOSITORY 或 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
)

所以这个错误没有任何意义......昨天它工作得很好(直到现在没有任何改变)。

任何的想法 ?

谢谢!

4

2 回答 2

3

这是 2.8.0 版本的错误。安装版本 2.8.3 或更高版本...

于 2011-05-15T18:02:36.527 回答
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不存在时要寻找它。

于 2012-01-26T19:06:00.317 回答