我正在编译一个在 cygwin 上使用 pthreads 和 gcc (确切地说是 g++)的项目。鉴于我一直在linux上开发这个,我从来没有遇到过任何问题。
但现在,我无法编译使用某些 pthread 函数的代码,编译器抱怨这些函数未声明。我意识到我的工具链 g++ (GCC) 5.4.0 附带的 pthread.h 已保护部分
#if __POSIX_VISIBLE >= 200112
这些导致功能无法在 cygwin/windows 上使用。
我尝试搜索“__POSIX_VISIBLE”,但没有找到任何真正有用的东西。这实际上有什么作用以及为什么?我认为这只是 pthread 的某些部分无法在 Windows 上工作,或者在 cygwin 或其他什么中工作。但为什么只会somepthread 无论如何都会被阻塞吗?它甚至不抱怨-pthread
正在使用。
我计划最终将所有 pthread 内容更改为 c++ 线程,但现在我只想编译它,以便我可以解决更紧迫的问题。如果我在 cygwin/windows 上执行此操作,有什么办法可以解决这个问题吗?
看着/usr/include/sys/features.h
了解详情。
默认为 _GNU_SOURCE,包含所有内容。
检查您的项目是否限制定义-std
or ansi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)