linux下,C代码明明已经包含string.h,却报undefined reference to ’strdupa‘,这是为何?

使用manstrdupa查看,该函数的确在string.h声明,但是不懂什么原因。... 使用man strdupa查看,该函数的确在string.h声明,但是不懂什么原因。 展开
 我来答
不用我的名字了
2012-08-28 · TA获得超过363个赞
知道答主
回答量:204
采纳率:100%
帮助的人:152万
展开全部
这个函数仅在GNU C中能够使用。
你必须在文件里加上#define _GNU_SOURCE,这样才能使用这个函数。
追问
加了没用。我认为在debian这样的标准GNU/linux下,不需要加那个。
#if defined __USE_GNU && defined __GNUC__
/* Duplicate S, returning an identical alloca'd string. */
# define strdupa(s) \
这是其中的定义,加了#define __USE_GNU和#define __GNUC__也没用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淡轻沐
2017-12-27 · TA获得超过2828个赞
知道大有可为答主
回答量:1355
采纳率:0%
帮助的人:391万
展开全部
今天我也碰到了这个问题,在#include "string.h" 前加上#define __USE_GNU就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nusicvvv
2012-08-27 · TA获得超过2575个赞
知道大有可为答主
回答量:3576
采纳率:33%
帮助的人:1998万
展开全部
#include "stdio.h"
#include "string.h"
#include "stdlib.h"

看看
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式