QtCreator pthread 错误问题解决办法:error: undefined reference to `pthread_create`

    在 QtCreator 中写 C++ 多线程程序,编译报 error: undefined reference to pthread_create 错误,产生问题的原因很简单,没有链接 pthread 库

  • 解决方案:
    在 *.pro 中添加 LIBS += -lpthread

  • 多线程 Demo

#include <iostream>

#include <thread>
using namespace std;

void hello()
{
    cout << "Hello world." << endl;
}

int main()
{
    thread th(hello);
    th.join();

    return 0;
}

  • .pro
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.cpp

LIBS += -lpthread
在Linux环境下,当你使用Qt Creator编译Qt项目时遇到`undefined reference to 'udev_new'`这样的链接错误,通常是因为你在源代码中引用了`udev`库函数,但是在构建过程中该库并未被正确链接到目标文件。这里有几个步骤可以帮助你解决问题: 1. **检查包含文件**:确保你在`.cpp`文件的开头包含了`udev.h`头文件,这告诉编译器需要这个库。 ```c++ #include <libudev.h> ``` 2. **配置链接选项**:打开Qt Creator,转到项目的构建设置(Build Settings),在"Linker"部分检查"Libraries"项。如果`udev`库不在列表中,你需要添加它。对于一些发行版,可能叫做`libudev.so`或`libudev-xx.so`(xx代表版本号)。 3. **静态链接还是动态链接**:确认你是想要静态链接还是动态链接。如果是静态链接,确保已经安装对应版本的开发包(如`libudev-dev`)。如果是动态链接,确保运行环境的`udev`库路径在系统搜索路径中,或者提供明确的`-L`选项指定库目录给链接过程。 4. **查看日志信息**:查看完整的编译和链接日志,它们可能会提供更多关于依赖缺失的信息。 5. **更新库**:如果你使用的库版本过旧,试着更新到最新版本,有时候新版本可能解决了这个问题。 6. **清理并重建**:有时清理构建目录(`./configure clean; make clean`)然后重新构建也能解决问题。 如果以上步骤都无法解决问题,可能是项目的某个模块缺少对`udev`的支持或者库本身有问题,尝试更新或重新下载库,或者寻求更详细的社区支持或官方文档帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值