【发布时间】:2018-11-05 02:59:22
【问题描述】:
尝试了很多方法,例如:
-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 平台上到处更改代码。
希望这很清楚,请解锁此问题。
谢谢。
/////////////////////
更新:
是哪一行导致了这个错误:
tdo = FTDI_WriteTMSandTDIandReadTDO(tms, tdi, read_tdo);
在这个项目中的用法,read_tdo 是产生这个编译警告的 int。
【问题讨论】:
-
修复它。向我们展示代码,我们会提供帮助。警告的存在是有充分理由的;禁用它们很少是一个好主意
-
禁用警告是个坏主意。只需修复代码。 (添加演员表是最简单的解决方法,但可能不是最好的解决方法。)
-
而且...如果您必须添加演员表来绕过警告(打印指针时的
void*除外),那么您做错了。 -
我通过补丁修复了代码,因为我知道代码工作正常,我正在移植它,我不想再到处打补丁,我只想知道如何抑制它
-
是的,我知道如何解决它。我想知道如何在 gcc(linux) 中抑制此消息,因为我可以在 Visual Studio 中构建相同的代码。
标签: linux gcc gcc-warning