我正在尝试为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任何帮助都将不胜感激,提前谢谢。
发布于 2011-12-14 02:09:32
问题解决了,我所要做的就是添加:
#define _GNU_SOURCE我猜这些信息在程序员之间是已知的,因为我在网上找不到它,我不得不亲自询问我的C编程教授,即使这样,我们也遇到了一些追查来源的问题。
不管怎样,谢谢你。
发布于 2011-12-13 05:40:48
更改编译器行以包含-E选项并重定向输出。只有在使用此选项时,编译器才会预处理您的文件。对于两个版本都要这样做,在stdio.h中通常可以找到带有和不带有sb2. getline()的版本。通过查看两个版本的预处理输出,您应该能够看到包含getline()的位置。
https://stackoverflow.com/questions/8480929
复制相似问题