#cpp #unix #boost #codeblocks
Пытаюсь использовать 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); } Что происходит?
Ответы
Ответ 1
.../libpthread.so.0: error adding symbols: DSO missing from command line вот тут советуют добавить опцию -lpthread к опциям компилятора. для того, чтобы скомпилировать ваш пример, мне пришлось добавить первой строкой: #includeи передать компилятору опции -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 : recipe for target 'test' failed make: *** [test] Error 1
Комментариев нет:
Отправить комментарий