如何在VS10中使用libssh

时间:2011-11-20 19:58:40

标签: c++ visual-studio-2010 libssh

如何将libssh实现为我的编译器可识别的库?我正在使用Visual Studio 2010 C ++,并且我已经包含了Boost库而没有任何问题,但我使用Boost进行的过程很奇怪,我可以告诉libssh会有所不同。

我真的不想做一个DLL文件,我想要一个可执行文件,但是我知道DLL文件可以通过.rc脚本嵌入到可执行文件中。 (然后提取并加载)

我从来没有将Boost除了Boost包含在我的任何项目中,我觉得我应该真的知道如何做到这一点。请注意这是libssh而不是libssh2。感谢。

4 个答案:

答案 0 :(得分:14)

即使帖子陈旧我也有答案,也许对于有人来这里有所帮助。

将libssh实现到Visual Studio 2010中。

您需要的不仅仅是一个库需要3,以确保一切都能很好地编译。 首先下载libssh 的最新版本 在此之后,您将需要另外2个dll,以允许编译而不会出现问题:

  • 的libeay32.dll
  • zlib1.dll

对于第一个,它对我来说不是很清楚,所以我只使用了完整的openssl库openssl-0.9.8k_WIN32.zip

在您下载这些文件后,将它们放入Visual Studio中的位置。

转到

  • C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC

打开C语言的视觉工作室 - >虚电路 然后:

  • 使用 C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include 中的include复制文件夹,粘贴文件夹 libssh \ include (包含所有文件夹) .h文件)
  • 将文件 ssh.lib 复制到 C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ lib
  • 复制 ssh.dll C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ bin

将libeay32.dll和zlib1.dll复制到bin文件夹中。 或者,如果您下载了我推荐的openssl,那么您只需为lib ssh执行相同的处理工具,就不要忘记将.exe文件复制到带有dll的bin文件夹中。

在此之后,您还必须将库链接到项目的编译器中。

项目 - > projectName 属性打开一个带有属性的窗口然后去 - > 配置属性 - >链接器 - >输入 - >附加依赖

现在将以下库添加到依赖项

<强>; ssh.lib; ssleay32.lib; libeay32.lib;

然后它运作良好

我希望它可以帮助某人在这里帮助:)

答案 1 :(得分:2)

标准的Windows安装程序带有静态库。

重要无论如何,您最终会动态链接openssl(zlib)。你确定要这个吗?

如果你这样做,你需要

可选的:   - libz&gt; = 1.2

  1. 下载源zip,
  2. 创建一个out-of-sourcetree构建目录,
  3. 启动cmake-gui,调整
    • 选择来源并构建目录
    • 点击配置(例如,我选择了VS2010 Win64构建文件)
    • 打开VStudio,调整并构建为静态库(而不是DLL)
  4. 希望这会帮助你开始。

答案 2 :(得分:1)

您可以在Windows上轻松创建静态库。只需在cmake配置步骤中将WITH_STATIC_LIB设置为ON。

注意:libssh是根据LGPL许可的。

答案 3 :(得分:0)

此外,请确保使用libssh version-0.5.0或更早版本来构建VS2010应用程序,因为较新的libssh版本需要VS2012。