libssh2 C компиляция - PullRequest
       13

libssh2 C компиляция

2 голосов
/ 20 июля 2011

Я впервые работаю над проектом на C. Я просто пытаюсь сделать SSH-клиент.

мой код скопирован с сайта libssh2

http://www.libssh2.org/examples/ssh2.html

Но когда я запускаю это, я получаю следующие ошибки?

main.o: In function `main':
main.c:(.text+0xbe): undefined reference to `libssh2_init'
main.c:(.text+0x1a7): undefined reference to `libssh2_session_init_ex'
main.c:(.text+0x1bf): undefined reference to `libssh2_session_startup'
main.c:(.text+0x209): undefined reference to `libssh2_hostkey_hash'
main.c:(.text+0x282): undefined reference to `libssh2_userauth_list'
main.c:(.text+0x3e3): undefined reference to `libssh2_userauth_password_ex'
main.c:(.text+0x443): undefined reference to `libssh2_userauth_keyboard_interactive_ex'
main.c:(.text+0x4b9): undefined reference to `libssh2_userauth_publickey_fromfile_ex'
main.c:(.text+0x529): undefined reference to `libssh2_channel_open_ex'
main.c:(.text+0x58d): undefined reference to `libssh2_channel_setenv_ex'
main.c:(.text+0x5d9): undefined reference to `libssh2_channel_request_pty_ex'
main.c:(.text+0x633): undefined reference to `libssh2_channel_process_startup'
main.c:(.text+0x674): undefined reference to `libssh2_channel_free'
main.c:(.text+0x6a0): undefined reference to `libssh2_session_disconnect_ex'
main.c:(.text+0x6ac): undefined reference to `libssh2_session_free'
main.c:(.text+0x6c9): undefined reference to `libssh2_exit'
collect2: ld returned 1 exit status

Я знаю, что есть какая-то проблема со связыванием библиотеки. Я использую Netbeans в качестве моей IDE и относительно новичок в этом. Может кто-нибудь, пожалуйста, направьте меня. Я много искал в Интернете, но в основном ответы связаны с кодом, скомпилированным по команде с использованием gcc. Если кто-то может помочь в Netbeans.

Ответы [ 2 ]

2 голосов
/ 21 июля 2011

Понял, в Netbeans зайдите в Файл -> Свойства проекта -> Линкер -> Дополнительные команды, которые я написал -lssh2

0 голосов
/ 21 июля 2011

Чтобы скомпилировать этот код, вам нужно установить libssh2 в вашей системе.Эти неопределенные ссылки происходят из функций, включенных в заголовочные файлы (и используемых в коде), которые должны быть связаны с библиотекой, в которой они реализованы.

#include <libssh2.h>
#include <libssh2_sftp.h>

После установки libssh2 необходимо добавить флагlssh2 компилятору.Я не знаю о Netbeans, поэтому я не могу помочь вам с этим.Просмотрите параметры проекта и найдите что-нибудь о параметрах / флагах компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...