【问题标题】:why "-pthread" flag should be on when using gcc compiler for multithread programming为什么在使用 gcc 编译器进行多线程编程时应该打开“-pthread”标志
【发布时间】:2013-01-18 06:33:06
【问题描述】:

我刚从 Windows 转到 Linux 世界。一切对我来说都是新的,因为环境如此不同。

反正我正在学习APUE的书,尝试用gcc编译多线程代码。

代码使用pthread_create函数并包含pthread.h

虽然我包含了<pthread.h>,但我收到了pthread_create 函数未声明的错误消息

我用谷歌搜索了它,得到的答案是在我编译时将选项 -pthread 打开。 喜欢gcc -pthread blah.c

然后它编译并正常工作。

但我想知道-pthread 究竟做了什么。以及为什么我必须这样做,尽管我包含“pthread 头文件”

谢谢!

【问题讨论】:

标签: pthreads


【解决方案1】:

在代码中包含一些文件效率不高,您可能需要链接一些准备好的二进制实现代码的库(类似于 Windows 中的 DLL)。因此,您面临此错误。当您对 gcc 使用 -pthread 标志时,它会自动将您的对象与 lpthread 库链接并执行一些预处理器任务。 我建议您查看下面的链接,我发现它很有用。

gcc - significance of -pthread flag when compiling

【讨论】:

    猜你喜欢
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多