libssh
これらのヘッダーが実際にシステムにインストールされている コードと一致しないという理由で、おそらく git リポジトリのコードを使用しない方がよいでしょう。
そのため、行った変更を元に戻し (コピーまたは作成したファイルまたはシンボリックリンクを削除)、代わりに を使用して開発部分をインストールすることをお勧めしますapt
。これを実行すると、どのヘッダー ファイルがインストールされたかを確認できます。
rpm -ql libssh-dev
私のシステム (Fedora) では、パッケージは実際にはlibssh-devel
. 私が走るとき
rpm -ql libssh-devel
次の出力が得られます(部分的)
/usr/include/libssh/callbacks.h
/usr/include/libssh/legacy.h
/usr/include/libssh/libssh.h
/usr/include/libssh/server.h
/usr/include/libssh/sftp.h
/usr/include/libssh/ssh2.h
/usr/lib64/cmake/libssh-config-version.cmake
/usr/lib64/cmake/libssh-config.cmake
/usr/lib64/libssh.so
/usr/lib64/libssh_threads.so
...
ご覧のとおり、libssh.h
ヘッダーはlibssh
ディレクトリにあるため、コードから使用します
#include <libssh/libssh.h>
その方法を使用すると、インストールしたヘッダーがインストールしたライブラリと一致することが確実になり、後でイライラする時間を大幅に節約できます。
実際に動作することを確認するために使用できる簡単なテスト プログラムを次に示します。
// sshtest.cpp
#include <iostream>
#include <libssh/libssh.h>
int main()
{
std::cout << ssh_copyright() << std::endl;
return 0;
}
コンパイル、リンク、実行:
g++ -o sshtest sshtest.cpp -lssh ./sshtest
これにより、バージョン番号で始まる著作権文字列が生成されるため、libssh
期待したバージョンと一致することを確認できます。
私のマシンでは、次の出力が生成されました。
0.6.3 (c) 2003-2014 Aris Adamantiadis, Andreas Schneider, and libssh contributors. Distributed under the LGPL, please refer to COPYING file for information about your rights
幸運を。