繁体   English   中英

cmake 错误 libcurl not found, but libcurl4 is installed

[英]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-devlibcurl-gnutls-devlibcurl4-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.hsrc/utils/sortutil.h

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM