【发布时间】:2021-03-09 00:56:22
【问题描述】:
我一直在为一个使用 openmp 和 gcc 编译的多线程项目工作,但是我正在加入一个使用 avr-gcc 的项目,它似乎不想编译或识别 omp.h 。当我尝试编译并且无法找到更多信息时,我收到错误“avr-gcc: error: unrecognized command line option '-pthread'”。我发现这个关于 gcc-avr 更新速度较慢的问题 AVR gcc version < gcc release versions -- why? 但我想知道 avr-gcc 是否还没有添加 openmp 支持或出于某种原因没有添加,以及是否有解决方法而不需要团队切换编译器.
【问题讨论】:
-
听起来您正在使用一个确实不支持 pthreads 的 avr-gcc 版本,以及一个不提供 omp.h 的 C 库。 GCC 和 avr-gcc 的当前文档似乎特别表明 avr-gcc 支持 pthreads 和 OpenMP,所以我的第一个猜测是您使用的是过时的版本。在这种情况下,您可能确实需要切换编译器以使用 OpenMP 和/或 Pthreads,即使只是到更新的版本。
-
我在 linux 上并更新了我的 avr 工具链 gcc-avr binutils-avr gdb-avr avr-libc avrdude 但我遇到了同样的问题,这个答案 stackoverflow.com/questions/60877241/… 似乎不同意我是谁希望是错误的,它们链接到未列出对 pthread 的支持的文档。我想知道是否有人可能对 gcc-avr 有一些见解,我当前的 avr 工具链版本是:avr-libc n (1:2.0.0+Atmel3.6.1-2)。 binutils-avr (2.26.20160125+Atmel3.6.1-4)。 gcc-avr (1:5.4.0+Atmel3.6.1-2)。 gdb-avr (7.7-4)。 avrdude (6.3-20171130+svn1429-2+rpt1)。
-
您链接到的问答确实不能不同意,因为它是关于一个完全不同的问题。话虽如此,如果我确信我正确阅读了文档,那么我会写一个答案,而不是评论。即使是最新的 GCC 的 AVR 编译器也可能不支持 OpenMP 或(单独的问题)pthreads。
标签: pthreads openmp avr-gcc platformio