使警告静音:gfortran中的"不符合制表符"

sol*_*ito 7 fortran gfortran

我通常运行我的代码ifort,但在实现过程中,我更喜欢编译和测试,gfortran因为我发现它比它的intel更严格.

在打开编译选项时-Wall,我收到以下警告:

Warning: Nonconforming tab character at (1)

有没有办法在使用相同的编译选项时使这一特定警告静音?请注意,我希望用空格替换选项卡.如果没有办法解决这个问题,那么答案"不可能"就足够了.

And*_*eak 9

警告:我最初写的以下答案仅适用于gfortran 4.x. 版本5.x中的行为已反转,请参阅 user3024046的答案.


你都尝试了些什么?有-Wtabs帮助吗?来自man gfortran:

-Wtabs

默认情况下,选项卡被接受为空格,但选项卡不是Fortran字符集的成员.对于延续线,支持选项卡后跟1到9之间的数字.如果遇到选项卡,-Wno-tabs将导致发出警告.注意,-Wno-tabs对于-pedantic是活动的,-std = f95,-std = f2003,-std = f2008和-Wall.

-Wall设置-Wno-tabs.

如果它没有帮助,它仍然可能会-Wall覆盖此选项.然后你可以尝试手动设置-Wall没有标签部分:

-壁

启用常用的警告选项,这些警告选项与我们建议避免的使用相关,我们认为这些选项很容易避免.目前包括-Waliasing,-Wampersand,-Wconversion,-Wsurprising,-Wc-binding-type,-Wintrinsics-std,-Wno-tabs,-Wintrinsic-shadow,-Wline-truncation,-Wtarget-lifetime,-Wreal- q-constant和-Wunused.


小智 5

更新:对于 GCC/gFortran 5xx(我注意到 5.3.0),-Wtabs 的用法已被“逆转”,正如他们所说,“变得更明智”。

请参阅此处(https://gcc.gnu.org/gcc-5/changes.html

现在 -Wtabs 确实给出了不合格的警告,而 -Wno-tabs 则关闭了警告(即与之前的用法相反)。