【问题标题】:libssh's functions couldn't be found on qt and cmake error while building libssh构建libssh时在qt和cmake错误上找不到libssh的功能
【发布时间】:2025-12-19 17:35:06
【问题描述】:

我想在 Qt 中使用 libssh 库,我的操作系统是 ubuntu 18.04。
所以我克隆了库的文件并尝试用cmake构建它。 我按照安装文件夹中的教程进行操作,但构建过程无法完成。
起初我有这个错误:

Could NOT find CMocka (missing: CMOCKA_LIBRARIES CMOCKA_INCLUDE_DIR)**

我使用了rm CMakeCache.txtcmake,之后使用了make。没关系,但是当我再次使用 make install 时,我遇到了这个错误:

CMake Error at cmake_install.cmake:41 (file):
  file INSTALL cannot copy file
  "/home/heydari.f/libssh-mirror/build/libssh.pc" to
  "/usr/local/lib/pkgconfig/libssh.pc".
Makefile:85: recipe for target 'install' failed
make: *** [install] Error 1

我该怎么办?
在构建过程之后,与qt有什么关系吗?因为它明显找不到libssh的功能!

【问题讨论】:

  • sudo make install
  • 谢谢,安装问题已解决,但是我在用 libssh 编译 qt 项目时仍然遇到问题。它有如下错误:**错误:未定义对`ssh_session_is_known_server'的引用**你有什么想法对这个? @Waqar
  • 将错误复制粘贴到google。它告诉你什么了吗?
  • @Waqar 还没有任何用处。

标签: c++ qt ubuntu cmake libssh


【解决方案1】:

file INSTALL cannot copy file
"/home/heydari.f/libssh-mirror/build/libssh.pc" to
"/usr/local/lib/pkgconfig/libssh.pc"

这是一个权限问题。使用sudo make install 来解决这个问题。 sudo 赋予命令 root 权限。小心使用。

** error: undefined reference to 'ssh_session_is_known_server'**

undefined reference 通常意味着您正在尝试访问某些东西,在这种情况下是一个未找到的函数。此函数属于 libssh,因此这意味着您没有安装 libssh-dev 或者您提供的库路径不正确。由于后者的可能性很小,我将假设 libssh 丢失。在 Ubuntu 上,您可以使用以下命令安装它:

sudo apt install openssh-server libssh-dev

【讨论】: