2010-12-31 2 views
3

Я работаю над centos. В моей системе я установил boost 1.45.0. Программы составлены правильно, но всякий раз, когда я тип команды, чтобы увидеть результат дает следующее сообщение об ошибке:Ошибка при загрузке разделяемых библиотек boost

./a.out: error while loading shared libraries: libboost_thread.so.1.45.0: cannot open shared object file: No such file or directory

ответ

5

Как установить библиотеки подталкивания?

Проблема, с которой вы, вероятно, сталкиваетесь, заключается в том, что компоновщик не может найти библиотеки, а когда вы создали свою программу, вам пришлось вручную указать дополнительные пути к библиотеке для поиска библиотек.

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

export LD_LIBRARY_PATH=/path/to/boost/libs:$LD_LIBRARY_PATH

./runExecutable

2

Вы должны установить переменные окружения LD_LIBRARY_PATH включать путь к библиотекам буста (они, возможно, в /usr/local/lib и т.д.).

В Баш, это просто

export LD_LIBRARY_PATH=/path/to/boost:$LD_LIBRARY_PATH 
+1

в tcsh это setenv LD_LIBRARY_PATH/путь/to/boost: $ LD_LIBRARY_PATH – Akhil

4

В дополнение к другим ответам, вы можете также установить тег DT_RPATH при подключении вашего исполняемого файла

-Wl,-rpath,/path/to/boost/libraries -L /path/to/boost/libraries -lboost_whatever 

Таким образом, вам не нужно запоминать, чтобы установить LD_LIBRARY_PATH, если библиотеки установлены в нестандартном месте.

Смежные вопросы