到目前为止,我还没有C专家,即使解决方案是正确的,我也看不到它。现在已经尝试了2天了,我想我已经尽力了。
规格: Win7 x64, 编译器MinGW和 CMake并运行
要使用我在桌面下载文件夹中发出的编译器:cmake -G "MinGW Makefiles"
之后,在我所做的同一个文件夹中:cmake --build .
结束于100%,在我看来没有任何错误:
[100%] Linking C executable test_keyboard_interactive_auth_fails_with_wrong_response.exe
[100%] Build target test_keyboard_interactive_auth_fails_with_wrong_response
现在我的代码非常简单,我只是想让它工作但是在标题上失败了。我正在学习本教程http://api.libssh.org/master/libssh_tutorial.html,甚至无法使第一页工作。
我记得的标题是:
#include <libssh2.h> #include <libssh/libssh.h> #include <libssh.h>
我得到任何标题的“没有这样的文件或目录”。
在家里,我设法做了一些不同的事情:将libssh.h库及其文件手动添加到我正在处理的文件夹中,并将标题更改为#include "libssh.h"
在那之后我不会得到那个错误,但是会引发另一个错误,例如“对ssh_new的未定义引用”或类似的东西,现在不能记住,但可以在以后更新。
我将不胜感激任何帮助。我不介意从Linux编译,如果它会更容易,但我的目标是为Windows(最初)和我自己创建一个ssh服务器和ssh客户端 - 遵循该教程或另一个。
为每个人欢呼。
答案 0 :(得分:0)
两个问题:
您应该告诉您的visual studio它应该在libssh安装的include目录中查找头文件,其次,它应该将您的程序与libssh链接。
有很多方法可以达到目的,最普遍的方法是使用构建系统或生成器,如CMake(或任何其他的 - 有很多!)但当然你也可以简单地指出你的视觉工作室到正确的位置。
如果使用库,则需要访问相应的头文件,并且需要链接到库。如果您告诉编译器文件夹是系统文件夹,那么头文件可以包含尖括号(例如include <myheader.h>
),否则您将它们包含在引号中(例如include "myheader.h"
)。