[英]cmake error libcurl not found, but libcurl4 is installed
我正在尝试从开源游戏 TA-Spring 编译 Springlobby 版本 268 客户端。 但是最新版本(271)编译得很好。 但是当我尝试编译 268 版时,我得到了 CMake 错误:
CMake Error at /usr/share/cmake-3.18/Modules/FindCURL.cmake:163 (message):
CURL: Required feature libcurl is not found
Call Stack (most recent call first):
src/CMakeLists.txt:127 (FIND_PACKAGE)
我正在编译 Debian 测试并尝试了库libcurl4-openssl-dev
、 libcurl-gnutls-dev
和libcurl4-nss-dev
都没有成功。
游戏: https://springrts.com
大厅 0.271: https://github.com/springlobby/springlobby
大厅 0.268: https://github.com/springlobby/springlobby/tree/0.268
从源安装: https://github.com/springlobby/springlobby/wiki/Installfromsource
从 git repo 构建大厅:
git clone --recursive https://github.com/springlobby/springlobby.git
cd springlobby
cmake .
make
make install
Springlobby 版本 271 使用libcurl4-openssl-dev
但版本 268 似乎链接到较旧的 libcurl。
版本 268 错误地调用find_package
( src/CMakeLists.txt:127 ):
FIND_PACKAGE( CURL REQUIRED libcurl )
最后一个参数libcurl
被解释为(根据find_package 文档)作为COMPONENTS
列表的元素,在FindCURL.cmake的情况下,它被视为 PROTOCOL/FEATURE 规范。 显然, libcurl
既不是协议也不是功能。
提交https://github.com/springlobby/springlobby/commit/252c4cb156c1442ed9b4faec3f26265bc7c295ff将此调用修复为
FIND_PACKAGE(CURL REQUIRED)
Springlobby 0.268 支持拥有大多数玩家的旧大厅服务器以及较新的大厅服务器。
因此,如果您想编译和使用旧的 0.268 Springlobby,您必须像我已经写过的那样克隆当前版本的 git,然后通过以下方式选择旧版本:
git checkout 0.268
应用 Tsyvarev 在src/CMakeLists.txt
第 127 行发布的修复程序。但您还必须添加:
#include <string>
到这些文件顶部的包含下方的文件src/battlelist.h
和src/utils/sortutil.h
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.