Как включить libssh в мой проект
Я установил libssh, следуя инструкциям, и хотя все вроде бы в порядке, мой компилятор по-прежнему возвращает ошибку "файл не найден" в строке "#include". Я предполагаю, что это как-то связано с каталогами или ссылками (у меня есть "make install" в той же папке, где я его скачал), но я не знаю, куда мне его поместить, чтобы я мог # включить его в любой проект.
Вот как я его установил: я скачал его и разархивировал в папку "libssh" на рабочем столе (Mac).
Тогда я сделал
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ..
make
и наконец:
sudo make install
Тогда в моей программе:
#include <libssh/sftp.h>
И XCode возвращает: "файл libssh / sftp.h не найден". Я попытался добавить папку libssh на рабочем столе в проект, но у меня все еще есть подобные проблемы.
Думаю, мне следует установить его (как-то) в папку / usr / include, чтобы его мог использовать любой проект (например, pthread или многие другие), но я не знаю, как это сделать.
Если я включаю любой другой файл в / usr / include, он работает нормально (например), но когда я #include возвращает файл, который не найден, даже если я перехожу в / usr / include / libssh, файл libssh.h существует.
Это очень простой пример кода:
#include <stdio.h>
#include <pthread.h> //OK
#include <libssh/libssh.h> //Not OK, file not found.
int main(int argc, const char * argv[])
{
printf("Hello World!");
return 0;
}
2 ответа
В уроке описано, как вы должны связать библиотеку
У вас есть две возможности здесь:
Как описано, вы должны добавить эти две строки в ваш код
#define LIBSSH_STATIC 1
#include <libssh/libssh.h>
Вы компилируете свой код с
LIBSSH_STATIC
флаг.gcc -DLIBSSH_STATIC test.c -o test.o
Я думал, что если у вас есть библиотека в / usr / include, компилятор автоматически скомпонует ее. Например, файл pthread.h включен правильно, ничего не делая.
Это системная библиотека, которая в большинстве случаев автоматически связывается. libssh
не является. Вот почему вы должны быть более конкретными о том, как скомпилировать / связать его.
У меня была очень похожая проблема несколько раз, и я решил ее, удалив символы ≤ ≥ из заголовочных файлов и используя символы "" и абсолютный путь к заголовочному файлу, который вы включаете. Теперь это не решит ваших проблем с установкой libssh, но позволит вам скомпилировать так, как у вас есть, при условии, что вы знаете абсолютный путь к вашему файлу заголовка и все зависимости вашего заголовка находятся в соответствующих местах, в которые они были включены искать их. Надеюсь, это поможет.