【问题标题】:Eclipse: unrecognized option '-pthread'Eclipse:无法识别的选项“-pthread”
【发布时间】:2016-07-13 23:45:24
【问题描述】:

我是 C 中的新编程人员,现在我正在尝试在我正在开发的电机控制程序中实现线程,但我的问题是我无法在 Eclipse 中运行 pthread.h 库。尽管已经为 Win32 安装了 POSIX 线程库

信息:内部构建器用于构建

gcc -O3 -g3 -Wall -pthread -c -fmessage-length=0 -o src\main.o ..\src\main.c 
gcc: error: unrecognized option '-pthread'
Info: Parallel threads used: 1

虽然我只是说图书馆

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

int main(void) {
    return EXIT_SUCCESS;
}

检查论坛几次,并在-pthread 杂项和链接phtread 中做了他们想要建立的,但我无法解决问题,有人可以帮我吗?

我有 Windows 10,64 位。

【问题讨论】:

  • 这与 Eclipse 本身几乎没有关系,但一切都与 GCC 以及如何为 MS Windows 安装 POSIX 线程库有关。只是一个猜测:-pthread 选项仅适用于正确的 POSIX 系统,而在 MS Windows 上它只是一个库,您可以与 -l&lt;name of the library&gt; 链接。也就是说,您说您是 C 新手。从 POSIX 线程的跨平台 hack 开始,对于初学者来说可能是一项太多的任务。要么在真正的 POSIX 系统上运行你的实验,要么留在 win32 API 中,它也提供自己的原生线程支持。
  • 我是 C 新手,但如果我需要为 CNC 机床电机的同时处理步骤创建流程并且 3 个 PWM 输出必须独立于每个但都由代码中的 main 函数处理,因为可能有更方便的方式来实现这样的东西。注意:如果我加载库,我不会加载 Eclipse,但 CodeWarrior 会在其中 pthread 编程我的 Blast (KL25Z)。
  • 很抱歉,我在理解你的这个回复时遇到了很大的问题,因为这两句话里塞满了太多信息。
  • 请以详细模式重新编译,gcc -v -O3 -g3 -Wall -pthread -c -fmessage-length=0 -o src\main.o ..\src\main.c 并将完整的输出发布在您的问题正文中。

标签: c eclipse multithreading gcc pthreads


【解决方案1】:

如果您的代码没有编译,您需要在您的gcc 编译中添加-pthread 参数,如下所示。

  1. 导航至: 项目 -> 属性
  2. 左侧: c/c++ build -> GCC C Compiler -> Miscellaneous
  3. Other Flags部分的开头添加-pthread参数
  4. 还有 pthread 库 添加 c/c++ 构建 -> 设置 -> GCC C 链接器 -> 库
  5. 并将 pthread 库包含到其他库中。
  6. 单击应用。
  7. 清理并构建项目。

如果您只有未解决的包含问题,请指定pthread.h 的文件系统路径,因为您的编译器不知道这一点。 Check here how to add pthread.h in your filesystem.

【讨论】:

  • 你可以用图片告诉我如何添加补丁,我尝试了很多次,但我无法解决问题。
  • 这是行不通的,因为-pthread 标志已经存在(请参阅错误消息),但 win32(!) 编译器显然不理解它,因为它没有本机 pthread在这个平台上实现。因此,第 3 步可能是错误的,应该跳过。至于其余的,究竟是什么问题,朱利安?您不能按照这些步骤进行操作,或者它们不会带来预期的结果吗?
【解决方案2】:

我放弃了尝试,转而使用我使用的计数器卡(KL25Z)和事件编程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2016-11-05
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多