1

UbuntuLinuxにlibssh2ライブラリをインストールしました。Cコードをコンパイルすると、次のメッセージが表示されます。

`libssh2_session_init_ex'への未定義の参照

私は彼らのウェブサイトからlibssh2をダウンロードしました。コンピュータにインストールする方法の指示に従いましたが、まだ何かが足りないようです。

これは私の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もインストールするように言われましたが、どうすればいいのかわかりません。

ありがとう

4

3 に答える 3

1

1)持っているものをアンインストールします。何か問題があり、そこにいると混乱するだけです。それを取り除く。

2) *install" libssh2-dev を次のように:

sudo apt-get install libssh2-dev libssh2

3) アプリケーションのビルドを再試行します。

メイクファイルまたはビルド スクリプトが正しい場所を指していることを確認してください (コンパイル時ヘッダーの場合は「-I」、リンク時ライブラリの場合は「-L」)。

幸運を!

于 2012-04-22T18:14:18.993 に答える
0

私はあなたが欲しいと思います:

gcc -g \
-I /usr/src/libssh2-1.4.1/include \
-L /usr/src/libssh2-1.4.1/ \
-l ssh2 \
-o mysshpass mysshpass.c
于 2012-04-22T06:38:00.143 に答える