You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下使用qmake为Qt项目添加boost库遇pthread链接错误如何解决?

Linux qmake Qt项目引入Boost库及pthread链接报错解决方案

报错说明

你遇到的报错内容如下:

main.o: undefined reference to symbol 'pthread_condattr_setclock@@GLIBC_2.3.3'
/usr/bin/ld: /usr/lib/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

该报错核心原因有两个:

  1. Boost部分依赖的pthread库未被加入编译链接参数
  2. Boost库的头文件、库文件路径及模块链接规则未正确配置到Qt工程中

具体配置步骤

直接修改你的Qt项目.pro工程文件,添加以下配置:

  • 配置Boost头文件与库文件路径
# 若Boost为系统默认路径安装(apt/yum/dnf安装的默认路径),可省略以下两行
# 自定义路径安装时替换为你实际的Boost安装路径
INCLUDEPATH += /usr/local/include
LIBS += -L/usr/local/lib
  • 链接你需要用到的Boost模块
# 按需添加实际用到的Boost模块,示例为线程、系统、文件系统模块
LIBS += -lboost_thread -lboost_system -lboost_filesystem

注意:若你安装的Boost多线程模块带mt后缀,将-lboost_thread替换为-lboost_thread-mt即可

  • 添加pthread编译链接参数,解决DSO缺失报错
QMAKE_CXXFLAGS += -pthread
LIBS += -lpthread

生效操作

  • 保存.pro文件后,执行qmake命令重新生成Makefile
  • 执行make重新编译项目即可正常通过

内容的提问来源于stack exchange,提问作者ShellCpp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:06:03