AB *_*lim 14 linux build download cmake
我刚从ExternalProject_Add()版本升级GIT_REPOSITORY到ExternalProject_Add()
它的工作魅力http却在升级后失败了.
我正在尝试使用httpsCMake功能构建第三方库.
ExternalProject_Add(
luacov
URL https://github.com/keplerproject/luacov/archive/v0.7.tar.gz
DOWNLOAD_DIR ${EXTERNAL_PROJECT_DOWNLOAD_DIR}
CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE}
SOURCE_DIR ${EXTERNAL_PROJECT_SRC_DIR}/luacov
BINARY_DIR ${EXTERNAL_PROJECT_BUILD_DIR}/luacov
UPDATE_COMMAND ""
PATCH_COMMAND ""
)
Run Code Online (Sandbox Code Playgroud)
我的观察:
URL选项,ExternalProject_Add()允许http和https协议下载外部项目.https选项,ExternalProject_Add()只允许GIT_REPOSITORY,但不允许ExternalProject_Add()下载外部项目的协议.问题:
有没有办法使用http协议下载和构建外部项目?
错误:
[ 16%] Performing download step (download, verify and extract) for 'luacov'
-- downloading...
src='https://github.com/keplerproject/luacov/archive/v0.7.tar.gz'
dst='/home/build/my_build/external_projects/downloads/v0.7.tar.gz'
timeout='none'
CMake Error at /home/build/my_build/luacov-prefix/src/luacov-stamp/download-luacov.cmake:21 (message):
error: downloading
'https://github.com/keplerproject/luacov/archive/v0.7.tar.gz' failed
status_code: 1
status_string: "Unsupported protocol"
log: Protocol "https" not supported or disabled in libcurl
Closing connection -1
make[3]: *** [luacov-prefix/src/luacov-stamp/luacov-download] Error 1
make[2]: *** [CMakeFiles/luacov.dir/all] Error 2
make[1]: *** [CMakeFiles/luacov.dir/rule] Error 2
make: *** [luacov] Error 2
Run Code Online (Sandbox Code Playgroud)
mlb*_*ght 21
问题可能是默认情况下,CMake附带的CURL库不是使用SSL支持构建的.我必须编译cmake:
./bootstrap --system-curl
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
......这很有效,因为我的系统卷曲有SSL支持.
Edu*_*Edu 13
它对我有用的是:
更新openssl
sudo apt-get install openssl libssl-dev
Run Code Online (Sandbox Code Playgroud)修改引导程序文件以启用CMAKE_USE_OPENSSL.将此行替换为:
cmake_options="-DCMAKE_BOOTSTRAP=1 -DCMAKE_USE_OPENSSL=ON"
Run Code Online (Sandbox Code Playgroud)通常在cmake文件夹中运行bootstrap脚本
/@path_to_cmake/bootstrap
Run Code Online (Sandbox Code Playgroud)在我的中ExternalProject_Add(),我使用了GIT_REPOSITORYinstedURL选项。
#URL https://github.com/keplerproject/luacov/archive/v0.7.tar.gz
GIT_REPOSITORY https://github.com/keplerproject/luacov.git
Run Code Online (Sandbox Code Playgroud)
并luacov下载并构建成功。
对于任何https协议使用功能DOWNLOAD_COMMAND选项ExternalProject_Add()。
DOWNLOAD_COMMAND wget https://github.com/keplerproject/luacov/archive/v0.7.tar.gz
Run Code Online (Sandbox Code Playgroud)
及其按预期工作。
谢谢。
| 归档时间: |
|
| 查看次数: |
9340 次 |
| 最近记录: |