2015-08-13 6 views
5

Ich normalerweise laufen meinen Code mit ifort, aber während der Implementierung bevorzuge ich kompilieren und testen mit gfortran, da ich finde es viel strenger als seine Intel Gegenstück.Stumm die Warnung: `Non-Conforming Tab-Zeichen 'in Gfortran

Während Anschalten Optionen wie -Wall kompiliert, erhalte ich die folgende Warnung:

Warning: Nonconforming tab character at (1)

Gibt es eine Möglichkeit, diese eine besondere Warnung zum Schweigen zu bringen, während der gleiche Compilierung Optionen? Beachten Sie, dass ich NICHT Tabs mit Leerzeichen ersetzen möchte. Wenn dieses Problem nicht gelöst werden kann, ist die Antwort "Nein, es ist nicht möglich" ausreichend.

+0

'| grep -v "Nonconforming tab character" ' – agentp

Antwort

7

Warnung: die unten angegebene Antwort gilt nur für gfortran 4.x. Das Verhalten wurde in Version 5.x umgekehrt, siehe the answer by user3024046.


Was haben Sie bisher versucht? Unterstützt -Wtabs? Von man gfortran:

-Wtabs

Standardmäßig werden Tabs als Leerzeichen akzeptiert, aber Tabs sind nicht Mitglieder des Fortran-Zeichensatz. Für Fortsetzungszeilen wird eine Registerkarte gefolgt von einer Ziffer zwischen 1 und 9 unterstützt. -Wno-tabs wird eine Warnung ausgegeben werden, wenn eine Registerkarte gefunden wird. Beachten Sie, dass -Wno-tabs für -pedantic aktiv ist, -std = f95, -std = f2003, -std = f2008 und -Wall.

Und -Wall Sets -Wno-tabs. Wenn es nicht hilft, könnte es immer noch sein, dass -Wall diese Option überschreibt. Dann können Sie versuchen, manuell -Wall ohne die Registerkarten Einstellteil:

-Wall

Ermöglicht häufig verwendete Warnoptionen Verwendung im Zusammenhang, die wir empfehlen zu vermeiden und dass wir glauben, sind leicht zu vermeiden. Dies umfasst derzeit -Waliasing, -Woppersand, -Wconversion, -Was überraschend, -WC-Bindungstyp, -Wintrinsics-Standard, -Wno-Tabs, -Wintrinsic-Schatten, -Wline-Trunkierung, -Wertlaufzeit, -WReal -q-Konstante und -Wunused.

+0

Ich hatte' -Wno-tabs' versucht, aber '-Wtabs' schaffte den Trick. Vielen Dank! – solalito

+0

Wenn Sie Ihrer Antwort ein Bit hinzufügen, überschreibt "-Wall" die Optionen "-Wtabs" nicht, aber "-pedantic". – solalito

+0

Danke für die Rückmeldung :) Das ist eigentlich, was ich von "pedantisch" erwarten würde: Sie verwenden es, um Standardverhalten zu erzwingen, also sollte es Tabs nicht zulassen. –

3

UPDATE: Mit GCC/gfortran 5xx (Ich bemerkte mit 5.3.0), die -Wtabs Nutzung wurde "umgekehrt", und wie sie sagen, "sinnvoller gemacht".

Siehe hier (https://gcc.gnu.org/gcc-5/changes.html)

Jetzt -Wtabs die nicht-konforme Warnung nicht geben, während -Wno-tabs die Warnung schaltet sich aus (das heißt das Gegenteil der vorherigen Nutzung).

+0

Wow, interessante Wendung der Ereignisse :) Kudos für den Fund, habe ich meine Antwort bearbeitet, um festzustellen, dass es nur bis 4.x funktioniert und dass 5.x von Ihrer Antwort abgedeckt ist. Fühlen Sie sich frei, ein Kommentar auf die teilweise falsche Antwort beim nächsten Mal zu hinterlassen, es ist wichtig, die Grenzen jeder Antwort zu kennen. –

0

Der einfachste Weg, um die Warnung in Gfortran-Versionen 4.x loszuwerden, ist das Überschreiben der -Wno-Tabs-Flag, dass die -Wall-Flag setzt.Also zuerst -Wall und dann -Wtabs

-Wall -Wtabs