Ubuntuでgccを使用してコードをコンパイルしようとすると、エラーが発生します。
次のように入力してlibssh-devをインストールしました。
sudo apt-get install libssh-dev
そしてそれはうまくインストールされました(エラーメッセージなし)
私がコンパイルしようとしているコードは次のとおりです。
#include <stdlib.h>
#include <stdio.h>
#define LIBSSH_STATIC 1
#include <libssh/libssh.h>
int main(void){
int rc;
int port = 21;
char *pass = "password";
ssh_session my_ssh_session = ssh_new();
if(my_ssh_session == NULL){
exit(-1);
}
ssh_options_set(my_ssh_session, SSH_OPTIONS_HOST, "localhost");
ssh_options_set(my_ssh_session, SSH_OPTIONS_PORT, &port);
ssh_options_set(my_ssh_session, SSH_OPTIONS_USER, "username");
rc = ssh_connect(my_ssh_session);
if(rc != SSH_OK){
fprintf(stderr, "Error connecting to localhost: %s\n", ssh_get_error(my_ssh_session) );
exit(-1);
}
ssh_userauth_password(my_ssh_session, NULL, pass);
ssh_disconnect(my_ssh_session);
ssh_free(my_ssh_session);
}
コードをコンパイルしようとすると、エラーメッセージに次のように表示されます。
user@neodym:~/Desktop/projects/ssh$ gcc -lssh ssh_client.c
/tmp/ccGihId0.o: In function `main':
ssh_client.c:(.text+0x2a): undefined reference to `ssh_new'
ssh_client.c:(.text+0x57): undefined reference to `ssh_options_set'
ssh_client.c:(.text+0x6c): undefined reference to `ssh_options_set'
ssh_client.c:(.text+0x84): undefined reference to `ssh_options_set'
ssh_client.c:(.text+0x90): undefined reference to `ssh_connect'
ssh_client.c:(.text+0xa5): undefined reference to `ssh_get_error'
ssh_client.c:(.text+0xe2): undefined reference to `ssh_userauth_password'
ssh_client.c:(.text+0xee): undefined reference to `ssh_disconnect'
ssh_client.c:(.text+0xfa): undefined reference to `ssh_free'
collect2: error: ld returned 1 exit status
私はすべてグーグルの準備ができていますが、今のところ何も機能していません。
libsshヘッダーファイルは/ usr / include / libssh /にインストールされるため、gccはそれらを見つけることができるはずです。
これを修正するのを手伝ってもらえますか?
次のコマンドでコンパイルしてみてください。
gcc -c ssh_client.c
次に、ssh
ライブラリとリンクします。
gcc -o ssh_client ssh_client.o -lssh
または1つのステップで:
gcc -o ssh_client ssh_client.c -lssh
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加