Ошибка привязки Boost в Eclipse

Я безрезультатно бился головой о стену, пытаясь включить функциональность потоков boost в свой проект Eclipse C++ на Ubuntu.

Шаги до сих пор:

Скачать буст с boost.org

./configure --with-libraries=system,thread
make
sudo make install

sudo ldconfig -v

В проекте eclipse установите для каталога include значение:

/usr/local/include/boost-1_38/

В компоновщике установите для библиотеки (-l) значение «boost_thread».

Установите путь поиска (-L) на

/usr/local/lib

Линкер запускается, возвращается с ошибкой ld

/usr/bin/ld: cannot find -lboost_thread

следующим образом:

Invoking: GCC C++ Linker
g++ -L/usr/local/lib -o"boostHello3"  ./src/boostHello3.o   -lboost_thread
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status

Вот соответствующие записи из /usr/local/lib:

libboost_system-gcc43-mt-1_38.a
libboost_system-gcc43-mt-1_38.so
libboost_system-gcc43-mt-1_38.so.1.38.0
libboost_system-gcc43-mt.a
libboost_system-gcc43-mt.so

libboost_thread-gcc43-mt-1_38.a
libboost_thread-gcc43-mt-1_38.so
libboost_thread-gcc43-mt-1_38.so.1.38.0
libboost_thread-gcc43-mt.a
libboost_thread-gcc43-mt.so

Вот содержимое /etc/ld.so.conf

include /etc/ld.so.conf.d/*.conf
/usr/local/lib

Как компоновщик пропускает это?


person Jack BeNimble    schedule 27.04.2009    source источник


Ответы (2)


Ваша строка компоновщика должна говорить -lboost_thread-gcc43-mt-1_38.

person Dimitri Tcaciuc    schedule 27.04.2009

Что ж, компоновщик пытается найти в своем пути поиска библиотеку с именем «libboost_thread.a» (или «libboost_thread.so»), которой у вас, по-видимому, нет. Либо создайте соответствующую ссылку, либо используйте "-lboost_thread-gcc43-mt"

person ackb    schedule 27.04.2009
comment
Я также попробовал -lboost_thread-gcc43-mt, и это сработало. Но почему? Для этой конкретной строки не настроена символическая ссылка. Или он отбрасывает ссылки .o и .a и берет имя для того типа библиотеки, который ему нужен? - person Jack BeNimble; 27.04.2009