我如何正确链接libssh?

我正试图在我的代码中包含一个lib(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.co [ 5%] Building C object examples/CMakeFiles/exec.dir/authentication.co [ 8%] Building C object examples/CMakeFiles/exec.dir/knownhosts.co [ 11%] Building C object examples/CMakeFiles/exec.dir/connect_ssh.co 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.sossh_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.co 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/下的一些库。 去看看你的。