linux 无法禁用gcc警告-在没有强制转换的情况下从整数生成指针

4si2a6ki  于 2023-04-20  发布在  Linux
关注(0)|答案(2)|浏览(158)

尝试了很多方法,例如:

-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上构建了它。
我看到了我在本期中描述的错误日志。
这里是问题代码,问题是第三个输入参数unsinged char tdo。
因为当在这个项目中调用这个函数时,它将int作为输入参数,而不是unsinged 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);

在这个项目中的用法,read_tdo是int,它产生了这个编译警告。

rfbsl7qr

rfbsl7qr1#

为gcc添加此参数,如下所示:
-Wno-int-to-pointer-cast
它解决了这个问题。

sd2nnvve

sd2nnvve2#

添加此选项:-Wnoint-conversion。它将抑制有关不兼容的整数到指针和指针到整数转换的警告。

注意-Wno-int-to-pointer-cast在这种情况下不起作用。当有一个***显式***转换到不同大小的整数***的指针***时,会给出此警告。

相关问题