mingw 中的 libpthread 找不到库

2024-03-20

我正在尝试使用 mingw 编译以下程序:

#include <pthread.h>
#include <errno.h>
#include <unistd.h>
#include <iostream>
#include <cstdio>

void *hello(void *id) {
  int nid = *static_cast<int*>(id);
  std::printf("Hello from thread %d\n", nid);
  return 0;
}

int main(int argc, char **argv) {
  pthread_t ids[2];
  int *params[2];
  for (int i = 0; i < 2; ++i) {
    params[i] = new int;
    *params[i] = i;
    pthread_create(&ids[i], 0, hello, params[i]);
  }
  for (int i = 0; i < 2; ++i)
    pthread_join(ids[i], 0);
  for (int i = 0; i < 2; ++i)
    delete params[i];
  return 0;
}

使用这个命令:

g++ -lpthread -ohello.exe hello.cc

我收到以下消息:

C:\Users\XXXXXX~1\AppData\Local\Temp\cczPlv0w.o:hello.cc:(.text+0xad): undefined 
reference to `_imp__pthread_create'
C:\Users\XXXXXX~1\AppData\Local\Temp\cczPlv0w.o:hello.cc:(.text+0xe9): undefined 
reference to `_imp__pthread_join'
collect2: ld returned 1 exit status

但使用旧版本的 MingGW 时,我运行 pthreads 程序没有任何问题。 (这只是所有失败的程序中最简单的一个,但基本上所有使用 pthread 的程序都会出现相同的错误,C 和 C++)


Move -lpthread到该命令的末尾:

g++ -ohello.exe hello.cc -lpthread

参数的顺序很重要。 (使用-pthread整个而不是-lpthread实际上建议使用 for 链接,因为它为预处理器和链接器设置标志。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mingw 中的 libpthread 找不到库 的相关文章

  • 我必须分离或加入 pthread 吗?

    The pthread detach 文档说 The pthread detach 函数应指示实现 线程的存储空间可以在该线程被回收时被回收 终止 如果我创建一个可连接线程并且不分离或连接它 会有什么后果 该线程的资源不会被回收吗 你是在自
  • C 线程编程 - 增加共享变量

    嘿伙计们 所以我正在尝试温习我的 C 线程 我发现的一个问题是 给定一个全局变量 int x 0 实现函数 void 无用 int n 它创建 n 个线程 在循环中将 x 加 1 每个线程在 x 达到 100 时终止 我只是没有掌握线程 需
  • 在Windows下使用通过MSYS2安装的cmake 3.5.2,缺少“MinGW Makefiles”生成器

    我正在尝试使用 MinGW 作为编译器 在 Windows 下进行 hello world 测试来制作 cmake 这个答案 https stackoverflow com a 4101496 4063051建议运行cmake与 G标志如下
  • 从 pthread 调用 sleep() 是否会使线程或进程进入睡眠状态?

    我看到有一个关于linux pthread睡眠 https stackoverflow com questions 3633089 pthread sleep linux 然而 当我在 Linux 机器上查找手册页时 我看到以下内容 概要
  • 用 c++11 编译时 Mingw g++ 无法识别 off_t

    我写了尽可能小的测试问题 include
  • 在 Linux 中何时使用 pthread_exit() 以及何时使用 pthread_join()?

    我是 pthreads 的新手 我正在尝试理解它 我看到了一些例子 如下所示 我可以看到main 被 API 阻止pthread exit 而且我见过 main 函数被 API 阻塞的例子pthread join 我无法理解何时使用什么 我
  • Sublime Text 2 和 MinGW

    再会 任何人都可以分享他们如何将 MinGW 编译器附加到 Sublime 的经验吗 我在互联网上找到了一个配置 但是当我运行编译的程序时 会弹出错误 其中缺少 MinGW bin 中的文件 Config cmd mingw32 g exe
  • pthread_join() 用于异步线程

    我写了一个简单的演示程序 以便我可以理解pthread join 功能 我知道如何使用pthread condition wait 函数允许异步线程 但我试图了解如何使用pthread join 功能 在下面的程序中我通过线程1s ID t
  • 如何在c中创建信号量?

    我正在尝试重新创建一个 黑盒 库 在我的计算机科学课程中 当我们应该使用信号量时 在我们的纸质期末考试中 我们会得到一个 sem h 文件 有 3 个函数 一个用于创建具有初始数量令牌的新信号量 一个用于从信号量中取出令牌 一个用于将令牌放
  • 使 minGW 控制台程序在没有控制台的情况下运行

    我在 MinGW 中制作了一个控制台程序 它执行网络和文件操作 然而 它是一个控制台程序 如何让它安静地运行 没有控制台 没有窗口 尝试这个 ShowWindow GetConsoleWindowHandle SW HIDE GetCons
  • 另一个 MinGW“gcc:错误:CreateProcess:没有这样的文件或目录”

    我已经通过 GUI 安装程序在 Windows 8 64 位 中安装了 MinGW C 编译器 但是当我尝试编译 C 程序时 gcc 说 gcc CreateProcess 没有这样的文件或目录 这是一个常见的错误 我已经尝试了我找到的所有
  • 致命错误:iostream:没有这样的文件或目录#include

    我在学习C 的时候遇到了一个问题 编译的时候遇到了错误 The details are as follows You seem to have not installed C support in MinGW If you are usin
  • 以编程方式或使用清单 (MinGW) 将“覆盖高 DPI 缩放”设置为“系统(增强)”

    我尝试了所有可能的组合gdiScaling and dpiAware 仍然没有运气 如果我手动右键单击 app exe 并将 覆盖高 DPI 缩放 设置为 系统 增强 效果很好
  • 除非链接到 pthreads,否则不会出现死锁?

    为什么创建 std mutex 死锁实际上不会导致死锁 除非程序链接到 pthreads 以下内容在与 pthreads 库链接时会死锁 如果未链接 pthreads 则不会死锁 在 gcc 和 clang 上测试 clang main c
  • 数百个空闲线程的影响

    我正在考虑使用可能数百个线程来实现通过网络管理设备的任务 这是一个在带有 Linux 内核的 powerpc 处理器上运行的 C 应用程序 在每个任务进行同步以将数据从设备复制到任务的初始阶段之后 任务变得空闲 并且仅在收到警报或需要更改一
  • 如何随时暂停 pthread?

    最近我开始将 ucos ii 移植到 Ubuntu PC 上 我们知道 在pthread的回调函数中的 while 循环中简单地添加一个标志来执行暂停和恢复是不可能模拟ucos ii中的 进程 的 如下解决方案 因为ucos ii中的 进程
  • 在 QtCreator 中将 OpenCV 2.3 与 Qt 结合使用

    随着 OpenCV 2 3 版本终于发布 我想在我的系统上编译并安装这个最新版本 由于我经常使用 Qt 和 QtCreator 我当然希望能够在我的 Qt 项目中使用它 我已经尝试了几种方法几个小时 但总是出现错误 第一次尝试 使用WITH
  • Windows 应用商店应用程序可以用 Mingw 构建吗?

    有没有办法构建 Windows 应用商店应用程序Mingw http mingw org 工具链 最终交叉编译 http mxe cc 它们来自 Linux 上的 mingw 因为如果它在一个 Mingw 工具链中工作 它也应该在另一个工具
  • 如何“杀死”Pthread?

    我正在学习 Pthreads 并且想知道杀死这样一个对象的最佳方法是什么 在寻找类似的问题后 我无法找到 明确 的答案 但请随时向我指出任何相关问题 我正在使用一个小型客户端服务器应用程序 其中服务器主线程正在侦听套接字上的客户端连接 每次
  • 使用 MinGW 链接到 Python

    我不想创建一个嵌入Python解释器的跨平台程序 并用MinGW编译它 但是 Python 二进制发行版没有提供 MinGW 链接的库 仅python32 lib对于 Visual C 并且 Python 源包不提供使用 MinGW 编译的

随机推荐

  • LDAP:ldap.SIZELIMIT_EXCEEDED

    我正在得到一个ldap SIZELIMIT EXCEEDED当我运行此代码时出错 import ldap url ldap
  • WebStorm:配置 Prettier 使用选项卡?

    The 更漂亮的文档 https prettier io docs en options html tabs说使用 use tabs覆盖默认行为 WebStorm 自动填充 Prettier 包 那是一个文件夹 我尝试将其更改为npm pr
  • 格式化 C# 字符串,使其值之间的间距相同

    我有3根弦 第一组字符串是 1 0536 2 1 2 第二个是这样的 Round Square Hex 最后是 6061 T6 T351 ASF 3 4 5 我需要将三个字符串组合在一起 每个字符串之间的间距相同 我无法使用 t 进行制表符
  • 删除不必要的 svn:mergeinfo 属性

    当我合并我的存储库中的内容时 Subversion 想要添加 更改很多内容svn mergeinfo与我要合并的内容完全无关的文件的属性 有关此行为的问题之前已在 Stack Overflow 上提出过 工作副本根目录以外的路径上的 SVN
  • 带有“href”的plotly树形图元素不适用于本地相对html路径

    我有一个简单的表格 文本内有 href href指向本地html文件的相对路径 但点击它并不会打开该页面 有什么办法可以做到这一点 好的解决方法吗 文件夹结构如下 由于root会改变 所以需要相对路径 root root index htm
  • Iphone - 当每个单元格高度是动态时,何时计算 tableview 的 heightForRowAtIndexPath?

    我已经多次看到这个问题被问到 但令人惊讶的是 我没有看到一致的答案 所以我自己尝试一下 如果您有一个包含您自己的自定义 UITableViewCells 的 tableview 其中包含 UITextViews 和 UILabels 其高度
  • 如何根据整个 github actions 工作流程的成功或失败设置 github 分支保护规则?

    我正在尝试根据 github 操作工作流程的成功或失败设置 github 分支保护规则 您可以在此处查看工作流程 https github com apostropecms apostrope blob main github workfl
  • Rust 与 Python 程序性能结果问题

    我写了一个计算字数的程序 这是程序 use std collections HashMap use std io use std io prelude derive Debug struct Entry word String count
  • 自动完成扩展器在模式弹出扩展器内不起作用

    我正在打开一个弹出窗口 其中有一个文本框 我想为此文本框使用 Ajax 自动完成 extebder 但它无法调用 webservice 方法进行自动完成 无法理解这是回发或更新面板的问题 我应该在哪里使用更新面板 我的包含弹出 div 的页
  • GCC 声明: typedef __pid_t pid_t?

    我对 例如 pid t 的声明感到困惑 pid t 是什么意思 它是其他地方定义的另一种类型吗 如果是 在哪里 为什么我的 types h 在 ubuntu 13 04 64 位中定义 pid t 如下 ifndef pid t defin
  • 如何在 Markdown 表格中编写列表?

    可以在 Markdown 表格中创建一个列表 项目符号 编号与否 一个表看起来像这样 Tables Are Cool col 3 is right aligned 1600 col 2 is centered 12 zebra stripe
  • 按 Enter 键后将焦点保持在文本框上

    在VBA窗体中按回车键后如何将焦点保持在文本框中 此代码将文本添加到列表框 我想将焦点保持在文本框上以准备接收另一个项目 当我单击 添加 按钮时 它将文本添加到列表框并将焦点返回到文本框 但是当我按 Enter 时 它不会 即使它使用相同的
  • 在 C# 中从 DBMS_OUTPUT.GET_LINES 获取输出缓冲区

    我正在尝试获取输出DBMS OUTPUT PUT LINE 通过 C 在我的匿名 PL SQL 块中调用方法 我在这里查看了其他几个相关问题 但仍然遇到麻烦 执行匿名块的返回码正在return 1 这应该是正确的docs https doc
  • 如何在 Google Compute Engine 中打开特定端口(例如 9090)

    我有 2 个 Google Compute Engine 实例 我想在这两个实例中打开端口 9090 我认为我们需要添加一些防火墙规则 你能告诉我该怎么做吗 Answer recommended by Google Cloud collec
  • 在 Jinja2 中显示嵌套字典

    我有以下 Jinja2 模板 block body for key in tree recursive set outer loop loop for subkey in tree key if subkey R tree key subk
  • 网络挖掘-分类算法

    我的高级项目是确定网页的主导类别 我抓取了 dmoz 现在我正在尝试构建arff 之后我将使用一些特征提取方法和分类算法 您知道哪种特征提取方法与用于网络挖掘的任何分类算法表现良好吗 u分类 http www uclassify com u
  • Java 同步引用

    我有A级和B级 public class A private static List
  • 有没有一种将视频从 Android 流式传输到 RTSP 服务器的好方法?

    我已经四处寻找并没有真正发现任何东西 我想通过流将视频从内置摄像头发送到我的 RTSP 服务器 在寻找示例时 我发现 MediaPlayer 的 setDataSource 方法可能只包含服务器上流的位置 我尝试用以下方法来模拟 media
  • 更新关系数据的算法

    已知哪些算法可以在存在数据库约束的情况下通过插入 更新和删除行来执行更新数据库的任务 更具体地说 要删除的行的前图像 要插入的行的后图像以及要更新的行的两个图像都在内存中 这些行可能用于多个表 更新的确切顺序要么是未知的 要么是没有被保留
  • mingw 中的 libpthread 找不到库

    我正在尝试使用 mingw 编译以下程序 include