繁体   English   中英

Scratchbox2返回“函数getline的隐式声明”,以及其他奇怪的行为

[英]Scratchbox2 returns “Implicit declaration of function getline”, among other weird behaviour

我正在尝试交叉编译我的maemo环境(GNU)应用程序。 在正常编译应用程序时,一切正常,但是当它通过sb2编译时会出现以下警告:

$ sb2 gcc -D_GNU_SORCE -o app -Wall -g -I.......//don't think this is relevant

 In file included from wifi_collector_menu.c:50:
 wifi_collector_list.c: In function `show_net_apns':
 wifi_collector_list.c:777: warning: implicit declaration of function `getline'

我完全混淆为什么会发生这种情况,还有其他的getline在程序中有效,我试图在代码内部和编译器命令中同时定义变量_GNU_SOURCE(不是同时)这是行显然导致警告的代码:

size_t bytesnum = MAX_ESSID;
size_t bytes_read;
char *netname = NULL;
printf("Enter name of selected network:");
bytes_read=getline(&netname,&bytesnum,stdin);//This line

任何帮助将不胜感激,提前谢谢。

问题解决了,我所要做的就是添加:

#define _GNU_SOURCE

每个头文件中, 包含stdio.h 之前 ,非常简单。

我猜这个信息在程序员之间是假设的,因为我无法在网上找到它,并且不得不亲自询问我的C编程教授,即便如此,我们在跟踪源代码时遇到了一些麻烦。

不管怎么说,还是要谢谢你。

更改编译器行以包含-E选项并重定向输出。 使用此选项时,编译器将仅预处理您的文件。 对于这两个版本,无论有没有sb2. getline() ,都sb2. getline() sb2. getline()通常在stdio.h找到。 通过查看两个版本的预处理输出,您应该能够看到包含getline()位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM