【发布时间】:2015-09-07 12:15:58
【问题描述】:
我在 ubuntu 15.04 上使用 GCC 4.9。我在eclipse CDT中编码。这是一个方言设置为 c99 的 C 程序。出于某种原因,我的编译器一直警告我这...
warning: implicit declaration of function ‘posix_memalign’ [-Wimplicit-function-declaration]
我不知道为什么。我在顶部有#include<stdlib.h>,当我使用 eclipse 时,ctrl+click posix_memalign 会将我带到 stdlib.h 中的函数声明。为什么我会收到此警告?
我刚刚尝试将 dialext 更改为 std=gnu99,这解决了问题。 posix_memalign 不包含在 c99 中吗?
【问题讨论】:
-
要求:
_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 -
@PoojaNilangekar:也许是因为他们在
fenv.h?不要在自己的源文件中声明标准函数! -
“你检查了那些。我的价值观更大”你不检查那些。而在
#include <stdlib.h>之前需要有一行类似于:`#define _POSIX_C_SOURCE (200112L)` -
将
-D_POSIX_C_SOURCE=200112L作为命令行选项传递给编译器也可以完成这项工作。 -
@PoojaNilangekar,为系统功能编写自己的原型是个坏主意。相反,请阅读手册页以了解所需的功能。手册页指出需要包含哪些头文件以及使头文件实际定义这些原型需要什么#define。或通过 'set' 将适当的字符串放置在您的环境中,在 .profile 或类似文件中。