我在我的Ubuntu linux上安装了libssh2库。在编译C代码时,我收到了这条消息:
未定义的引用`libssh2_session_init_ex'
我从他们的网站上下载了libssh2。我按照如何在我的电脑上安装它的说明,但似乎我仍然缺少soemthing。
这是我的make文件中的代码:
all: ssh
ssh: mysshpass.c
gcc -lssh2 -g -o mysshpass mysshpass.c
clean:
rm -rf mysshpass
C代码的包含部分:
1 #include <stdlib.h>
2 #include <libssh2.h>
3 #include <libssh2_sftp.h>
4
5 #include <sys/socket.h>
6 #include <netinet/in.h>
7 #include <arpa/inet.h>
8 #include <sys/types.h>
9 #include <stdio.h>
10 #include <string.h>
11
12 //#include <libssh2_config.h>
13
14 int main(int argc, char *argv[])
非常感谢
注意:
我使用了这一新行:
all: ssh
ssh: mysshpass.c
gcc -g -Lusr/src/libssh2-1.4.1/include -o mysshpass mysshpass.c
clean:
rm -rf mysshpass
但仍然是相同的编译错误。顺便说一句,我被告知也要安装libssh2-devel,但我不知道该怎么做。
由于
答案 0 :(得分:1)
1)卸载你得到了什么。有些不对劲,它只会让事情混乱。摆脱它。
2)*安装“libssh2-dev像这样:
sudo apt-get install libssh2-dev libssh2
3)再次尝试构建应用程序。
确保makefile或构建脚本指向正确的位置(“-I”表示编译时头文件,“ - L”表示链接时库)
祝你好运!答案 1 :(得分:0)
我想你想要:
gcc -g \
-I /usr/src/libssh2-1.4.1/include \
-L /usr/src/libssh2-1.4.1/ \
-l ssh2 \
-o mysshpass mysshpass.c
答案 2 :(得分:0)
你可以把-lssh放在最后。 使用:
gcc a.c -lssh