C &引用;进程“u vm”readv“的隐式声明;,但我包括<;系统/uio.h>;
我正在尝试使用GCC编译一些代码。在我的代码中,我调用process_vm_readv()和process_vm_writev() 我在.c文件中加入了这个人,但GCC指出: 警告:函数“process\u vm\u writev”的隐式声明C &引用;进程“u vm”readv“的隐式声明;,但我包括<;系统/uio.h>;,c,gcc,ubuntu-13.10,C,Gcc,Ubuntu 13.10,我正在尝试使用GCC编译一些代码。在我的代码中,我调用process_vm_readv()和process_vm_writev() 我在.c文件中加入了这个人,但GCC指出: 警告:函数“process\u vm\u writev”的隐式声明 我不知道如何解决这个问题。。。标准的libc函数,如printf和strlen,可以很好地编译。这些函数只有在启用GNU扩展时才可用。这就是#define(定义)GNU(源代码有效)(这一事实可能应该记录在手册页中) 所以你需要这样做 #define _G
我不知道如何解决这个问题。。。标准的libc函数,如printf和strlen,可以很好地编译。这些函数只有在启用GNU扩展时才可用。这就是#define
(定义)GNU(源代码
有效)(这一事实可能应该记录在手册页中)
所以你需要这样做
#define _GNU_SOURCE
#include <sys/uio.h>
定义GNU源
#包括
您的libc
似乎没有。你有哪个libc版本?原型是否存在于/usr/include/bits/uio.h
?@downvoter这是一个有效的问题,格式良好,并且在网站范围内。我应该提到我的glibc版本是2.17(版本>=2.15支持函数)。nos的回答解决了这个问题。是的。这是一个很好的答案。我很惊讶手册页没有提到它,它通常是直接在标题前提到的。是的,就是这样!我报告说它是手册页项目中的一个bug。