无法禁用 gcc 警告 - 从没有强制转换的整数制作指针



尝试了许多方法,例如:

-fsyntax-only
-Wno-format

仍然收到以下警告:

xxxxx passing argument x of xxxx make pointer from integer without a cast

我想以任何方式禁用此警告。

//////////////////////

更新:

为了遵循这里的规则,我提供了特定的代码:

这是我测试的源代码:

https://github.com/vladermolaev/jam2ftdi

它可以通过Visual Studio成功构建。

然而,我想在Linux中测试它,我在Linux中构建了它。

我看到了我在本期中描述的错误日志。

这是问题代码,问题是第三个输入参数unsigned char*tdo。

因为在这个项目中调用这个函数时,它将int作为输入参数,而不是unsigned char*

https://github.com/vladermolaev/jam2ftdi/blob/master/FTDI_API.h#L5

int FTDI_WriteTMSandTDIandReadTDO(const unsigned char tms, const unsigned char tdi, unsigned char *tdo);

因此,自从我在Windows操作系统中构建以来,我就知道它是有效的,我不想在linux平台上到处更改代码。

希望这是清楚的,请解锁这个问题。

谢谢。

///////////////////////

更新:

导致此错误的线路:

https://github.com/vladermolaev/jam2ftdi/blob/9af9c7a055707b178e5aa91ae4447686256a4790/JAMSTUB.C#L328

tdo = FTDI_WriteTMSandTDIandReadTDO(tms, tdi, read_tdo);

这个项目中的用法readdo是int,它生成了这个编译警告。

为gcc添加此参数,如下所示:

-Wno int到指针强制转换

它解决了这个问题。

添加此选项:-Wnoint-conversion。它将禁止有关不兼容的整数到指针和指针到整数转换的警告
注意:-Wno-int-to-pointer-cast在这种情况下不起作用。当显式强制转换到不同大小的整数的指针时,会发出此警告。

最新更新