使用gcc

时间:2018-02-06 18:47:39

标签: windows libssh

我正在尝试使用gcc在Windows 10上使用libssh。这项工作是从命令行完成的。

我不知道如何将 libssh / 作为搜索路径的一部分。

#include是 libssh / libssh.h ,但是失败了。 (方括号被遗漏在这句话之外。)

#include <libssh.h> 
#include <stdlib.h>
int main()
{
  ssh_session my_ssh_session = ssh_new();
  if (my_ssh_session == NULL)
    exit(-1);
  ...
  ssh_free(my_ssh_session);
}

当我将include语句修改为 libssh.h 并在命令行中使用以下命令时:

  

gcc -IC:\ libssh \ include \ libssh ssh.c -oout.exe

这可以通过未找到的libssh.h文件。

但是,找不到其他被调用的文件,例如 libssh / legacy.h

如何让 libssh 成为搜索路径的一部分?

我将 c:\ libssh \ include \ libssh 添加到环境路径中。那没用。

1 个答案:

答案 0 :(得分:0)

你需要让#include <libssh/libssh.h> 因为libssh.h调用了一个头文件legacy.h,它也位于libssh文件夹中,所以如果你直接放置头文件libssh.h它将无法找到legacy.h。

#include <libssh/libssh.h> 
#include <stdlib.h>
int main()
{
  ssh_session my_ssh_session = ssh_new();
  if (my_ssh_session == NULL)
    exit(-1);
  // remove the dots it'll create an error
  ssh_free(my_ssh_session);
}

让libssh成为你应该做的路径的一部分 gcc -I / path / to / libssh / include / directory -L / path / to / libssh / lib / directory -lssh ssh.c oout.exe

我也陷入了困境,现在我面临另一个问题,即在编译代码中链接libssh.dll或ssh.dll以将其作为独立使用。