【发布时间】:2013-01-03 19:40:43
【问题描述】:
我正在开发一个必须完全兼容 POSIX 的系统
我正在使用 gcc 和 c++ 在 Fedora Core 14 上开发它
我不想使用任何非 POSIX 的东西
我如何确保我保持这种状态?
有编译器设置吗?
我正在使用代码块
【问题讨论】:
标签: linux gcc makefile posix gnu
我正在开发一个必须完全兼容 POSIX 的系统
我正在使用 gcc 和 c++ 在 Fedora Core 14 上开发它
我不想使用任何非 POSIX 的东西
我如何确保我保持这种状态?
有编译器设置吗?
我正在使用代码块
【问题讨论】:
标签: linux gcc makefile posix gnu
不,没有“神奇的编译器开关”来确保您只使用 Posix API。
您可以在此处获取 POSIX 规范:
此套件允许您检查您的应用程序是否符合 POSIX API:
【讨论】:
这实际上与编译器无关。 POSIX 指定实用程序、接口和随附的头文件 - 编译器只关心编程语言的细节。
也就是说,如果您使用的头文件集实现良好,您应该能够使用正确的 -D 和 -U 选项启用/禁用您正在使用的功能集 gcc。
例如,包含fcntl.h 将不允许访问fallocate(),除非已定义_GNU_SOURCE。使用相同的标头,您需要将_POSIX_C_SOURCE 定义为200809L 或更大,以便F_DUPFD_CLOEXEC fcntl() 可用。
【讨论】: