vxWorks中发现的diable和gnule编译器的一些区别

来源:互联网 发布:战舰世界青叶数据 编辑:程序博客网 时间:2024/06/16 03:03

 在使用不同的编译器编译windml时发现两个编译器有一些不同点(编译内核时目前没有发现什么区别),说明如下:


环境说明:
平台3a2000_2h开发板,workbench6.8,编译windml


第一点:
在编译具有不同参数的同名函数时,diable会只是警告,gnu会报错。

在3a2000_2h板子的BSP中有一个不同参数的同名函数定义如下:
Gc300.c文件:
Void video_hw_bitblt(int bpp,int sx,int sy,int dx,int dy,int w,int h,int memBase)

Sis315e.c文件:
Void video_hw_bitblt(int bpp,int sx,int sy,int dx,int dy,int w,int h)

在编译时gnu会报错,必须进行修改,diable只会报一个警告。


第二点:
在一个函数中调用了一个没有使用的函数,但是本函数也没有在内核中使用,对于那个没有定义的函数gnu报错,diable没有报错,也没有警告。
LS22h_fb.c文件中有一个函数定义如下:
Static int ls2h_fb_remove(struct platform_device *dev)
{
Struct fb_info *info = platform_get_drvdata(dev);
… ...
}
这个函数中调用的platform_get_drvdata函数没有定义,但是ls2h_fb_remove本身也只是定义,没有使用。
对于这种情况gnu报错,diable即没有警告,也没有错误

原创粉丝点击