g ++: ошибка перезапуска: ld вернул 1 состояние выхода в Ubuntu, что решает только опция -L

Я хочу использовать restbed в моем проекте C ++, и я следую инструкциям, чтобы установить его на мою машину с Ubuntu. Я установил включаемый файл в /usr/local/include и файл библиотеки в /usr/local/library,

Проблема в следующем:

@ubuntu:~/test$ g++ test.cpp -o test -lrestbed -std=c++11
/usr/bin/ld: cannot find -lrestbed
collect2: error: ld returned 1 exit status

Это означает, что Ubuntu знает, где находятся мои включаемые файлы, но не знает, где находятся файлы ссылок или файлы ссылок повреждены. И все становится странным, см. Последний раздел.

Я искал много решений для этой проблемы, в том числе этот. Я следую за гильдией и добавил /usr/local/lib а также /usr/local/library в /etc/ld.so.confтак что в основном мой компоновщик знает, где найти файлы ссылок.

@ubuntu:~/test$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
/usr/loacl/lib
/usr/local/library

И когда я снова g ++ я потерпел неудачу, то же сообщение об ошибке. Я даже пытался export LD_LIBRARY_PATH="/usr/local/library"и я тоже побежал sudo ldconfig но все равно не повезло.

Итак, я обнаружил, что могу скомпилировать его с помощью этой команды:

g++ -L /usr/local/library test.cpp -o test -lrestbed -std=c++11

И все работает как шарм. Так что мои файлы ссылок в порядке, и я в замешательстве … почему система PATH не работает? И как мне это решить? (Я не хочу каждый раз вводить длинный путь, и он становится многословным, когда я использую больше сторонних библиотек).

Моя система:

ubuntu 16.04 LTS работает на параллельном рабочем столе

g++ (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.4) 5.4.0 20160609

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]