问题:
ubuntu中使用gcc 4.6.3编译代码。
源代码中使用了popen()和pclose()函数,当源代码没使能c99选项前,编译结果不报warnings;使能c99选项后(gcc -std=c99),编译时出现warnings:
controller.c:482:5: warning: implicit declaration of function ‘popen’ [-Wimplicit-function-declaration]
controller.c:482:18: warning: initialization makes pointer from integer without a cast [enabled by default]
解决办法:
1. 源代码中已经包含了popen()和pclose()的头文件#include <stdio.h>,这也是不加-std=c99时不报warnings的原因;
2. 将-std=c99替换为-std=gnu99;重新编译,warning消失。
问题解决。