未定义的引用符号'pthread_key_delete @@ GLIBC_2.2.5

我试图在Ubuntu中创build一个文件,当我让我不断收到此错误:

/usr/bin/ld: ../../gtest-1.7.0/libgtest.a(gtest-all.cc.o): undefined reference to symbol 'pthread_key_delete@@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”添加到variablesLDFLAGS中,但是您怎么做? 完全新的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:在CMakeLists.txt中搜索正在构建的项目的“线程”,并粘贴这些部分(或者链接哪个项目,如果它是开源的,则试图构建) – 如果上述内容不是自我解释的