Ответ 1
Вышеупомянутая проблема связывания решается путем добавления
-lpthread -lm to CMakeLists.txt (target link libraries for luxrender);
TARGET_LINK_LIBRARIES(... -lpthread -lm)
С уважением,
Я пытаюсь сделать файл в Ubuntu, и когда я заставляю эту ошибку:
/usr/bin/ld: ../../gtest-1.7.0/libgtest.a(gtest-all.cc.o): undefined reference to symbol '[email protected]@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
make[2]: *** [src/tests/run_tests] Error 1
make[1]: *** [src/tests/CMakeFiles/run_tests.dir/all] Error 2
make: *** [all] Error 2
Я видел, как кто-то упоминал о том, чтобы перейти в Makefile и добавить '-L/lib64 -l pthread' в переменную LDFLAGS, но как вы это делаете? Полностью новый для linux здесь = X
Вышеупомянутая проблема связывания решается путем добавления
-lpthread -lm to CMakeLists.txt (target link libraries for luxrender);
TARGET_LINK_LIBRARIES(... -lpthread -lm)
С уважением,
Я попал в ту же проблему: -lpthread должен быть последним в вызове ссылки (имеет отношение к сочетанию статических и общих символов)
Итак, с CMake: ${CMAKE_THREAD_LIBS_INIT}
должно быть последним. Например:
target_link_libraries(mytestlib
${BINARY_DIR}/libgmock.a
glog
gflags
${Boost_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
)
И для OP: найдите "thread" в CMakeLists.txt для проекта, в котором вы строите и вставляете этот раздел (или ссылку, какой проект вы пытаетесь построить, если он является открытым исходным кодом) - если выше указано isn ' t пояснительный