libpthread.so.0: error adding symbols: DSO missing from command line

libpthread.so.0: error adding symbols: DSO missing from command line

06.03.2016 09:09:53 Просмотров 29 Источник

Пытаюсь использовать message_queue. Собственно код ничего не делает, кроме вызова конструктора. Часть build log:

/usr/bin/ld: obj/Debug/main.o: неопределённая ссылка на символ «pthread_condattr_setpshared@@GLIBC_2.2.5» //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status

using namespace boost::interprocess;

int main()
{ 
    message_queue(open_or_create,"message_queue" ,100 ,100);
}

Что происходит?

У вопроса есть решение - Посмотреть?

https://ru.stackoverflow.com/questions/500459/libpthread-so-0-error-adding-symbols-dso-missing-from-command-line#comment596929_500459
Если вам дан исчерпывающий ответ, отметьте его как верный (галка напротив выбранного ответа).

Ответы - libpthread.so.0: error adding symbols: DSO missing from command line / libpthread.so.0: error adding symbols: DSO missing from command line

Является ответом!
aleksandr barakin

07.03.2016 12:02:47

.../libpthread.so.0: error adding symbols: DSO missing from command line

вот тут советуют добавить опцию

-lpthread

к опциям компилятора.


для того, чтобы скомпилировать ваш пример, мне пришлось добавить первой строкой:

#include <boost/interprocess/ipc/message_queue.hpp>

и передать компилятору опции -lrt -lpthread. тогда программа test из файла test.cpp компилируется удачно:

$ CPPFLAGS="-lrt -lpthread" make test
g++  -lrt -lpthread   test.cpp   -o test

описанная же вами ошибка легко воспроизводится при удалении опции -lpthread:

$ CPPFLAGS="-lrt" make test
g++  -lrt   test.cpp   -o test
/usr/bin/ld: /tmp/cc8fR82D.o: undefined reference to symbol 'pthread_condattr_setpshared@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'test' failed
make: *** [test] Error 1
https://ru.stackoverflow.com/questions/500459/libpthread-so-0-error-adding-symbols-dso-missing-from-command-line/500507#comment596783_500507
Уже было добавлено, никак не влияет на ошибку( -lprotobuf -lboost_thread /home/usr/boost_1_60_0/bin.v2/libs/thread/build/gcc-4.8/rele‌​ase/link-static/thre‌​ading-multi/libboost‌​_thread.a -lboost_system -lpthread /usr/bin/ld: obj/Debug/main.o: неопределённая ссылка на символ «shm_open@@GLIBC_2.2.5» //lib/x86_64-linux-gnu/librt.so.1: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status
https://ru.stackoverflow.com/questions/500459/libpthread-so-0-error-adding-symbols-dso-missing-from-command-line/500507#comment596800_500507
@JtheFoxx, я дополнил ответ.
https://ru.stackoverflow.com/questions/500459/libpthread-so-0-error-adding-symbols-dso-missing-from-command-line/500507#comment598464_500507
Огромное спасибо
Закрыть X