Функции libs sh не могут быть найдены при ошибке qt и cmake при сборке libssh - PullRequest
1 голос
/ 12 июля 2020

Я хочу использовать библиотеку libs sh в Qt, а моя ОС - ubuntu 18.04. поэтому я клонировал файл библиотеки и попытался собрать его с помощью cmake. Я выполнил инструкции в папке INSTALL, но процесс сборки не может быть завершен. сначала у меня была такая ошибка:

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

Я использовал rm CMakeCache.txt и cmake, а затем 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 после процесса сборки? потому что он явно не мог найти функции libs sh!

1 Ответ

0 голосов
/ 12 июля 2020

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 обычно означает, что вы пытаетесь получить доступ к чему-то, в данном случае к функции, которая не найдена. Эта функция принадлежит libs sh, поэтому это означает, что либо у вас не установлен libssh-dev, либо вы неправильно указываете путь к библиотеке. Поскольку последнее маловероятно, я предполагаю, что libssh отсутствует. В Ubuntu вы можете установить его, используя следующую команду:

sudo apt install openssh-server libssh-dev
...