- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试将一个库包含到我的代码 (libssh) 中,但没有任何效果...在这一点上,我不确定该怎么做,因为搜索引擎中没有针对我收到的错误弹出任何结果。
我在这里下载了 libssh: https://github.com/substack/libssh
我安装了这些:
yum install cmake zlib-devel libpng-devel openssl-devel -y;
创建了一个“build”目录作为 libssh 的父目录,移到那里,输入:
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ..
make
[root@ build]# cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug LD_DEBUG=all ..
-- Could NOT find NaCl (missing: NACL_LIBRARIES NACL_INCLUDE_DIRS)
-- ********************************************
-- ********** libssh build options : **********
-- zlib support: ON
-- libgcrypt support: OFF
-- libnacl support: OFF
-- SSH-1 support: OFF
-- SFTP support: ON
-- Server support : ON
-- GSSAPI support : ON
-- Pcap debugging support : ON
-- With static library: OFF
-- Unit testing: OFF
-- Client code Unit testing: OFF
-- Public API documentation generation
-- Benchmarks: OFF
-- ********************************************
-- Configuring done
-- Generating done
-- Build files have been written to: /root/libssh/build
然后它失败了...
Scanning dependencies of target exec
[ 2%] Building C object examples/CMakeFiles/exec.dir/exec.c.o
[ 5%] Building C object examples/CMakeFiles/exec.dir/authentication.c.o
[ 8%] Building C object examples/CMakeFiles/exec.dir/knownhosts.c.o
[ 11%] Building C object examples/CMakeFiles/exec.dir/connect_ssh.c.o
Linking C executable exec
/usr/bin/ld: cannot find -lssh_shared
collect2: ld a retourné 1 code d'état d'exécution
make[2]: *** [examples/exec] Erreur 1
make[1]: *** [examples/CMakeFiles/exec.dir/all] Erreur 2
make: *** [all] Erreur 2
有人知道问题出在哪里吗? “找不到 -lssh_shared” 在谷歌上没有显示任何相关信息。
最佳答案
错误信息是由于链接器/usr/bin/ld
在编译时无法链接到库ssh_shared.so
导致的。
我检查了文件 libssh/build/src/CMakeFiles/ssh_shared.dir/build.make
,里面有一些链接消息:
ssh_shared_EXTERNAL_OBJECTS =
src/libssh.so.4.2.0: /usr/lib/x86_64-linux-gnu/libz.so
src/libssh.so.4.2.0: /usr/lib/x86_64-linux-gnu/libssl.so
src/libssh.so.4.2.0: /usr/lib/x86_64-linux-gnu/libcrypto.so
... (snippet here) ...
src/libssh.so.4.2.0: src/CMakeFiles/ssh_shared.dir/bind.c.o
src/libssh.so.4.2.0: /usr/lib/x86_64-linux-gnu/libz.so
src/libssh.so.4.2.0: /usr/lib/x86_64-linux-gnu/libssl.so
src/libssh.so.4.2.0: /usr/lib/x86_64-linux-gnu/libcrypto.so
src/libssh.so.4.2.0: src/CMakeFiles/ssh_shared.dir/build.make
src/libssh.so.4.2.0: src/CMakeFiles/ssh_shared.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking C shared library libssh.so"
您可以注意到在构建过程中,cmake
会尝试链接我的系统路径 /usr/lib/x86_64-linux-gnu/
下的一些库。去检查你的。
关于c - 如何正确链接 libssh?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37336455/
我试图将我的程序与 libssh 静态库链接。 以下是我从 libssh 教程中复制的简单代码: //sshtest.c #define LIBSSH_STATIC 1 #include #incl
我想知道在使用 ARM 的 Sourcery 工具链进行交叉编译时是否可以将我的应用程序链接到 libssh。我的主机系统是Ubuntu x86_64 :~/c/ssh$ arm-none-linux
我想知道在使用 ARM 的 Sourcery 工具链进行交叉编译时是否可以将我的应用程序链接到 libssh。我的主机系统是 Ubuntu x86_64 :~/c/ssh$ arm-none-linu
我正在使用 libssh。 调用ssh_channel_write后,我必须知道是否有数据要读取。 ( 但我不想检索数据。 ) 如果没有数据要读取(例如10s后),我会调用ssh_channel_wr
我正在使用 libssh 向计算机发送远程命令。该命令是实时的,因此我试图在生成数据时获取数据。基本上,我正在对鼠标事件进行十六进制转储,并且我想要该数据。如何从我的命令中返回实时结果? #inclu
已阅读相关内容docs和 tutorials并找到了similar问题,我仍然无法继续。如果这是一个常见问题,我提前表示歉意。我进行了搜索,但我不太确定我在寻找什么...... 我正在 Debian
我不知道为什么我的 libssh 程序无法连接到本地主机,但它对远程主机运行良好。 ssh_session my_ssh_session = ssh_new(); ssh_options_set(my
我正在尝试编写一个简单的程序(玩具示例),将文件从远程主机复制到本地计算机。 当我尝试复制一个 txt 文件时它有效,但不适用于 mp4 等文件。 这是我的代码,基本上是教程中的部分拼接而成:http
我正在尝试将一个库包含到我的代码 (libssh) 中,但没有任何效果...在这一点上,我不确定该怎么做,因为搜索引擎中没有针对我收到的错误弹出任何结果。 我在这里下载了 libssh: https:
我正在尝试一个非常简单的 libssh 实现,但 valgrind 显示内存泄漏。 代码是: #include #include #include #include #include int
我正在尝试在我的应用程序中使用 libssh,但我不断收到内存泄漏。我正在尝试的最简单的代码是: #include #define SSH_NO_CPP_EXCEPTIONS assert(0 ==
我的 SSH 服务器使用双重身份验证。我不知道它是如何实现的。但最初它要求输入密码,然后再次要求输入另一个密码才能登录到与通常控制不同的单独控制台。 我的代码与文档中显示的示例代码类似, #inclu
我按照教程尝试使用 libssh 打开和验证 SSH 连接,但在 ssh_connect 之后,无论我尝试密码验证、公钥验证还是不验证,应用程序都会崩溃并出现核心转储。 t@1 (l@1)
问题:让一个使用 libssh 库的简单程序成功编译而不会出现链接器错误。 程序: #include #define LIBSSH_STATIC 1 #include #include void
即使我可以在我的服务器上使用各种方法进行身份验证,使用 libssh 库,也没有检测到任何身份验证方法。这是一个代码示例: #include #include int main(int,ch
我正在使用 libssh 库并尝试创建一个新的 SFTP session 。我不断收到错误消息 ssh_packet_unimplemented: Received SSH_MSG_UNIMPLEME
在 ssh cli 中,我可以: ssh root@localhost -t aria2c https://github.com/JetBrains/intellij-community/archiv
我试图使用 libssh 0.7.0 将 SSH 通信包含到我的程序中。我按照教程创建了到远程计算机的简单连接,但遇到了这个错误: [2016/10/26 16:38:56.280261, 1] ss
我正在我的应用程序中为 xen VM 实现 VNC 连接。为了连接,我必须转发端口,因为 XenServer 只接受本地连接。我是这样做的: ssh -L 5903:localhost:5903 ro
我已经按照说明安装了 libssh,尽管一切似乎都正常,但我的编译器仍然在“#include”行中返回错误“找不到文件”。我猜它与目录或链接有关(我在下载它的同一个文件夹中有“make install
我是一名优秀的程序员,十分优秀!