【问题标题】:Compiling libssh2 on windows在 windows 上编译 libssh2
【发布时间】:2017-07-03 15:40:53
【问题描述】:

有人可以帮助我在 Windows 上使用 Visual Studio 2017 编译 libssh2。 我发现的唯一东西太旧和过时了。

我从 github 下载 libssh2 并运行 cmake libssh2 然后 cmake -P cmake_install.cmake 但找不到安装文件“libssh2.lib”。

我被困在这里了!

********** 更新 1 ***********

Crypto_backend 丢失,我尝试用 openssl 编译并得到很多未解析的符号。

********** 更新 2 ***********

好的!我使用了 cmake-gui 并摆脱了未解析的符号,但现在我遇到了一些头文件的问题。 libssh2 var 类型未定义。某种包含缺失....?

【问题讨论】:

  • 我几乎可以肯定你做到了。但我需要问。您是否按照github中提出的安装指南进行操作??
  • @JTejedor 我知道,但是当cmake --build 生成 2916 错误!
  • 对不起,正如我所说,我几乎可以肯定。您使用了哪个 cypto-backend 库来构建?看到可以选择 Windows 原生库 (WinCNG) 了吗?
  • @JTejedor 是的,我想是这样,我正在尝试使用 openssl,但我现在不知道该怎么做。

标签: c++ ssh cmake libssh2


【解决方案1】:

我可以在 Windows 10 环境中编译 libssh2(我很感兴趣)。

环境

  • Windows 10 x64。
  • Visual Studio 社区 2017 版 15.2 (26430.4) 发布。
  • CMake 版本 3.9.0-rc5(我必须卸载以前的 在安装最后一个版本之前手动安装版本,因为安装程序有 已更改,正如 cmake 网络所建议的那样)。
  • Git 版本 2.10.1.windows.1

如果您请求除 WinCNG 之外的任何其他加密后端库,恐怕您需要先编译该加密后端库,然后再尝试编译 libssh2 并确保 CMake 自动找到加密后端库(如果没有,请检查请求 cmake 变量并手动完成)。

cmd中使用WinCNG和动态库选项编译libssh2的步骤

cd where/you/like/to/install
git clone https://github.com/libssh2/libssh2.git
cd libssh2
mkdir dll <-- directory to install libssh2
cmake -DCRYPTO_BACKEND=WinCNG -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./dll --build .
cmake --build . --target install

然后瞧,不到一分钟后,libssh 被创建并安装在 dll 目录中。

我希望这个迷你指南可以帮助你。

【讨论】:

  • 是的,但是如果你想使用 openssl 作为加密后端怎么办
  • 你需要编译OpenSSL,正如我在答案中所说的(我认为openssl web没有任何直接下载二进制文件的链接)。而且我认为windows的OpenSSL编译过程比libssh2更难
  • 我已经编译了 OpenSSL 但 Cmake 找不到它
  • 谢谢你,没有什么比试图让另一个人的库在 Windows 10 中编译更痛苦的了
  • 哇。那确实奏效了。没有其他方法所需的任何可笑步骤。它....刚刚工作。嗯,有点。运行这些命令后,我注意到在存储库根目录中生成了一个新的 Visual Studio 解决方案文件,名为“libssh2.sln”。我打开了它,构建了解决方案,并且成功构建了所有 42 个项目。我不知道为什么,在脚本运行期间,看起来有些文件没有找到,但它确实有效,并且在生成和构建解决方案之后构建的所有内容。
猜你喜欢
  • 2020-10-13
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2015-01-09
  • 2021-08-16
  • 2013-01-31
  • 1970-01-01
相关资源
最近更新 更多