如何启用_USE_UNIX98(GCC/C++ v2.96)

How to enable _USE_UNIX98 (Gcc/C++ v2.96)

本文关键字:C++ v2 GCC UNIX98 启用 何启用 USE      更新时间:2023-10-16

我有一个C++应用程序,可以在实际的编译器中工作(我用eclipse编译它(。现在,我需要在带有Kdevelop的Redhat 7.3上在一个非常旧的编译器版本(gcc/c ++ v2.96(上编译它。

当我编译应用程序时,它给出了以下错误:swprintf undeclared。wchar.h 标头它包含在内,但我在 RH7.3 操作系统中看到此文件,并且仅在声明__USE_UNIX98 __USE_ISOC99时才声明此函数。

如何启用__USE_UNIX98?

GNU libc 使用特殊的系统标头<features.h>定义了应该在其所有标头中启用的功能。如果定义了适当的宏,<features.h>将为您定义__USE_UNIX98

获取所有函数的典型方法,无论什么标准(如果有(涵盖它们,都是在命令行上添加-D_GNU_SOURCE。仅获取特定标准涵盖的功能需要使用该标准中指定的值(例如 -D_POSIX_C_SOURCE=200112L (定义该标准中指定的宏。通过手动检查/usr/include/features.h,可能最容易找到特定实现上支持的精确值。

从检查<features.h>定义_XOPEN_SOURCE到 500 或更高将导致定义__USE_UNIX98