两天前,我添加了一个外部项目来使用autotools编译项目。它一直工作到今天......
我有一个奇怪的错误:
CMake错误 /usr/share/cmake-2.8/Modules/ExternalProject.cmake:710(消息):错误:没有下载信息 对于'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
)
所以这个错误没有任何意义......昨天完全正常工作(直到现在都没有改变)。
有什么想法吗?
谢谢!
答案 0 :(得分:3)
这是2.8.0版本的错误。安装2.8.3或更高版本......
答案 1 :(得分:3)
即使使用2.8.6我也有类似的问题,文档也没什么帮助。我在网上找到了一个例子,它给了我需要的提示。
你需要使用URL参数,但有一个问题。如果您只是给它指向direcotry的路径,它假定您将其指向存档,而不是目录。您必须在路径前添加“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
不存在时才会找到它。