1. undefined reference to symbol ‘pthread_key_delete@@GLIBC_2.2.5
未定义对某符号的引用,该错误为链接时(linking)发生的错误。有如下方式的解决方案:
- 修改 Makefile 文件,为变量
LDFLAGS
加入,-L /lib64 -l pthread
;
- 通过
TARGET_LINK_LIBRARIES(... -lpthread -lm)
将-lpthread -lm
添加进CMakelists.txt
文件;
- 通过
2. 通过 cmake 的方式链接 google protobuf
How to link google protobuf libraries via cmake on linux?
include(FindProtobuf)
find_package(Protobuf REQUIRED)
include_directories(${PROTOBUF_INCLUDE_DIR})
...
target_link_libraries(complex
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${PROTOBUF_LIBRARY}
)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步