首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装libssh include libsshpp.hpp

安装libssh include libsshpp.hpp
EN

Stack Overflow用户
提问于 2014-04-04 04:50:07
回答 3查看 2.3K关注 0票数 1

我正在使用libssh编写一个C++程序,所以我查看了一下,以便安装库。最初我是通过sudo apt-get install libssh-dev安装的,但是在/usr/ libsshpp.hpp /libssh.中没有包含。

然后我在~目录中克隆git://git.libssh.org/projects/libssh.git libssh并运行./build/build_make.sh,它在~/libssh/include中有libsshpp.hpp,但在/usr/include/libssh中没有。

我认为这是因为它们之间的版本不同,较新的版本有libsshpp.hpp,然后我尝试将文件libsshpp.hpp复制到/usr/include/libssh,但在examples文件夹中编译example libsshpp.cpp时出现了许多错误,所以我认为这不是解决方案。

我的问题是,我如何安装最新版本的libssh并自动向/usr/include/libssh添加头文件,而不仅仅是在它自己的安装文件夹中?

EN

回答 3

Stack Overflow用户

发布于 2014-04-04 04:59:02

如果您真的想这样做,您可以修改include/libssh/CMakeLists.txt并添加

代码语言:javascript
复制
libsshpp.hpp

添加到libssh_HDRS变量。因为它不是默认安装的,所以这可能不是官方支持的。

票数 1
EN

Stack Overflow用户

发布于 2014-04-04 05:03:46

您最好不要使用git存储库中的代码,因为这些头文件不会与系统上实际安装的libssh代码相匹配。

因此,我建议撤销您所做的更改(删除复制或创建的文件或符号链接),而不是使用apt安装开发部分。您可以通过执行以下操作找出安装了哪些头文件:

代码语言:javascript
复制
rpm -ql libssh-dev

在我的系统(Fedora)上,这个包实际上被称为libssh-devel。当我跑的时候

代码语言:javascript
复制
rpm -ql libssh-devel

我得到以下输出(部分)

代码语言:javascript
复制
/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目录中,因此从您的代码中可以使用

代码语言:javascript
复制
#include <libssh/libssh.h>

使用这种方法将更好地确保您安装的头文件将与您安装的库相匹配,并在以后节省许多令人沮丧的时间。

下面是一个快速测试程序,您可以使用它来确保它确实有效:

代码语言:javascript
复制
// 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版本号开头的版权字符串,这样您就可以验证它是否与您期望的版本匹配。

在我刚才的机器上,它产生了以下输出:

代码语言:javascript
复制
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

祝好运。

票数 0
EN

Stack Overflow用户

发布于 2018-03-19 00:21:49

在Ubuntu上,您可以使用以下命令安装库

代码语言:javascript
复制
apt-get install libssh-dev

然后,如果你正在手动编译,使用-lssh来链接库,例如。

代码语言:javascript
复制
gcc -lssh ssh-program.c
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22848717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档