我正在尝试使用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 添加到环境路径中。那没用。
答案 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以将其作为独立使用。