首页 > 解决方案 > 无法禁用 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 中构建了它。

我看到了这个问题中描述的错误日志。

这里是问题代码,问题是第三个输入参数,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 ,它产生了这个编译警告。

标签: linuxgccgcc-warning

解决方案


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

-Wno-int-to-pointer-cast

它解决了这个问题。


推荐阅读