尝试了许多方法,例如:
-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
在这种情况下不起作用。当显式强制转换到不同大小的整数的指针时,会发出此警告。