CMake 无法打开:找不到 CURL_OPENSSL_3

最近在做 VLN 项目的时候用到了 CMake ,但是服务器上的 CMake 却不能运行。
cmake error
不仅是带参数情况下 CMake 无法运行,就连版本号也打印不出来。参考了一些博客,大概都说是版本不匹配的问题,于是尝试重新安装 libcurl3 。
libcurl3
但是 libcurl3 已经是最新版了,所以应该不是 libcurl3 的版本问题。那是不是 CMake 的版本问题?
cmake reinstall
可以看到,重新安装 CMake 也没有解决问题。可是明明在本地 Mac 上是能运行 CMake 的呀,于是想到对比两台电脑的版本信息。这一对比着实吓了一跳,本地 Mac 上的 CMake 版本是 3.15.4
cmake mac
而服务器上的 CMake 才 3.5.1 ,足足差了 10 个版本。但是为什么 apt-get 没有自动更新 CMake 呢?强制指定 CMake 安装版本的时候发现了原因。
cmake version
原来是清华镜像根本没有提供 3.15 版本的 CMake 。找到原因就好办了,直接到官网 https://cmake.org/download/ 下载 CMake 的安装包手动安装就行了。
official
尝试一下
try
果然是版本太低。安装好之后还可以在本地目录下建一个软连接,方便引用

ln -s cmake-3.17.1-Linux-x86_64/bin/cmake cmake

因为服务器的 root 权限是借的,所以就不往 /usr/local/ 里面装了,记得以后使用 CMake 的时候用相对路径。

CURLcmake中有两种方式来查和使用,分别是MODULE模式和CONFIG模式。MODULE模式是通过调用cmake内置的FindCURL.cmake脚本来查CURL,而CONFIG模式是通过引用CURL生成的cmake脚本来查CURL。 在CURLcmake脚本中,通过生成一个import target命名为CURL::libcurl来表示CURL的静态库。这个import target有一个属性INTERFACE_LINK_LIBRARIES,它定义了CURL::libcurl所依赖的其他库,包括"wldap32;winmm;ws2_32;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB;advapi32;crypt32"等库。 使用CONFIG模式来查CURL时,先尝试使用CURLcmake脚本来查,如果不到则再使用MODULE模式来查。这样可以保证在项目中能正确连接到CURL::libcurl target,并且到它所依赖的其他库。这对于生成动态库或EXE等需要连接的动作非常重要,否则可能会导致连接失败。 因此,在使用CURLcmake时,建议优先使用CONFIG模式来查CURL,以确保能够正常连接到CURL::libcurl target。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [cmake:Windows编译支持HTTPS的curl库及find_package查CURL时需要注意的问题](https://blog.csdn.net/10km/article/details/122812211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LutingWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值