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

时间:2015-08-13 11:45:58

标签: fortran gfortran

我通常使用ifort运行我的代码,但在实现过程中,我更喜欢使用gfortran进行编译和测试,因为我发现它比英特尔版本要严格得多。

在启用-Wall等编译选项时,我收到以下警告:

Warning: Nonconforming tab character at (1)

在使用相同的编译选项时,有没有办法让这个特定的警告静音?请注意,我 NOT 想要用空格字符替换制表符。如果没有办法解决这个问题,那么答案就是“不可能"就够了。

3 个答案:

答案 0 :(得分:8)

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

到目前为止你尝试了什么? -Wtabs有帮助吗?来自man gfortran

  

-Wtabs

     
    

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

  

-Wall设置-Wno-tabs

如果它没有帮助,那么-Wall可能仍会覆盖此选项。然后,您可以尝试手动设置-Wall而不使用标签部分:

  

-Wall

     
    

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

  

答案 1 :(得分:3)

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

见这里(https://gcc.gnu.org/gcc-5/changes.html

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

答案 2 :(得分:0)

在gfortran版本4.x中删除警告的最简单方法是覆盖-Wall标志设置的-Wno-tabs标志。首先包括-Wall然后-Wtabs

-Wall -Wtabs