CMake不支持HTTPS协议解决方案
最近对于想编译Slicer的小伙伴来说可能会遇到一些比较令人头疼的问题,比如新版VTK与Slicer源码不兼容、使用的VS版本兼容性较差等问题,小编我最近在编译的时候就也遇到了几个让人头大的问题,最为严重的就是关于CMake不支持HTTPS协议的问题。
具体报错如上图所示,这个CMake不支持HTTPS协议,请确保CMAKE_USE_OPENSSL打开。
由于小编我有着超高的“有问题,找度娘”的态度,立即去度娘上搜刮了一下相关资料,发现关于这个问题的解决方案并不是很多,有些编译教程虽然也有提到这个问题,但是都没有给出相应的解决方案。于是在自闭途中我恰巧看到了GIthub上面有人提出了这个问题,并且得到了Slicer工程师的回复,所以我就去尝试了一下,然后。。。你们懂的
https://github.com/Slicer/Slicer/issues/4839.
这个是提问者和工程师的讨论,大家可以看看。
由于是纯英文,大家可能懒得去看,我就在这里和大家说要一下我自己的电脑上的解决方案。。。。
出现上面关于HTTPS协议的问题,是由于CMake的可执行文件不能下载HTTPS服务器的文件。
大家可以在终端运行一下命令来检查你的CMake是不是能访问HTTPS服务器:
/path/to/cmake.exe -P /path/to/Slicer/CMake/SlicerCheckCMakeHTTPS.cmake
/path/to/cmake 是 CMake 可执行文件的完整路径
/path/to/Slicer 是通向 Slicer 源码 git checkout 的路径
大家记得修改自己的路径。
在我的终端中,输出情况是这样的:
错误是服务器不能解析我的主机名。
解决办法就是在你的本地源码文件中找到SlicerCheckCMakeHTTPS.cmake这个文件对他进行修改。
SlicerCheckCMakeHTTPS.cmake这个文件在哪呢,在你下载的SLicer源码的CMake文件夹里
右键,以记事本形式打开。
将里面的
message(FATAL_ERROR "error: This CMake does not support the HTTPS protocol. Ensure that CMake is compiled with CMAKE_USE_OPENSSL enabled.")
删掉。
在删除的地方加上
list(GET status 1 error_msg)
message(FATAL_ERROR "error: ${error_msg}")
这两条语句。
之后在上面的url那里,将https://raw.githubusercontent.com/Slicer/Slicer/master/CMakeLists.txt改成
百度的网址。
工程师给的网址是换成谷歌的网址,但是咱们没有代理的情况下是访问不了的,所以我就改成了百度的网址。之后再在终端里面运行
/path/to/cmake.exe -P /path/to/Slicer/CMake/SlicerCheckCMakeHTTPS.cmake
就会提示成功了:
这个时候你再去CMake里面configure,就不会有关于HTTPS的报错了。