Связывание Boost :: Thread - PullRequest
       14

Связывание Boost :: Thread

4 голосов
/ 05 марта 2012

Я пытаюсь что-то узнать с помощью библиотек Boost, но у меня возникает проблема, когда я пытаюсь скомпилировать что-то, что включает Boost :: threads. Я получаю сообщение об ошибке при связывании, это сообщение:

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lboost-thread

Но это странно, потому что это происходит только тогда, когда я компилирую с обычным пользователем, используя root, я могу скомпилировать без проблем.

Заранее спасибо.

Ответы [ 3 ]

7 голосов
/ 11 октября 2015

Включить

#include <boost/thread/thread.hpp>

Другие флаги компоновщика

-lboost_system -lboost_thread-mt
1 голос
/ 06 марта 2012

проверьте имя библиотеки в пути для быстрой установки (по умолчанию: / usr / lib /), если это libboost_thread.so, добавьте -lboost_thread. Не забудьте указать путь к каталогу boost с помощью -L / usr / lib / boost. Если он работает только как root, проверьте свои права в этом каталоге:

ls -la /usr/lib/ | grep boost

вы должны увидеть свой логин и rw_r_ r _ (проверьте, что у вас есть разрешение на чтение).

Если у вас есть это разрешение на каталог и на библиотеку Boost, соединение с gcc может быть выполнено:

g++ obj.o obj2.o -L/usr/lib -lboost_thread

если у вас нет файлов или у вас нет прав на чтение, войдите в систему как root и добавьте их

chown -R /usr/lib <your login>
chmod +r /usr/lib/lib*.so
0 голосов
/ 06 марта 2012

Добавьте / path / to / boost в ваш файл makefile. Включите путь, и ваша ошибка исчезнет.

Другой вариант - добавьте Boost в переменную LIBPATH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...