2015-08-13 32 views
5

Di solito eseguo il mio codice con ifort, ma durante l'implementazione, preferisco compilare e testare con gfortran perché trovo che sia molto più severo della sua controparte Intel.Silenziare l'avviso: `carattere di tabulazione non conforme 'in gfortran

Mentre attivando le opzioni come ad esempio -Wall compilazione, ottengo il seguente avviso:

Warning: Nonconforming tab character at (1)

C'è un modo per mettere a tacere questo avvertimento particolare durante l'utilizzo le stesse opzioni di compilazione? Nota che faccio NON voglio sostituire le schede con caratteri di spazio. Se non c'è modo di risolvere questo problema, la risposta "No non è possibile" sarebbe sufficiente.

+0

'| grep -v "Carattere scheda non conforme" ' – agentp

risposta

7

Avviso: la risposta di seguito che ho inizialmente scritto si applica solo a gfortran 4.x. Il comportamento è stato annullato nella versione 5.x, vedere the answer by user3024046.


Cosa hai provato fino ad ora? L'assistenza -Wtabs? Da man gfortran:

-Wtabs

Per impostazione predefinita, le schede sono accettate come spazi bianchi, ma le schede non sono membri del set di caratteri Fortran. Per le linee di continuazione, è supportata una scheda seguita da una cifra compresa tra 1 e 9. -Wno-tabs causerà l'emissione di un avviso se viene rilevata una scheda. Nota: -Wno-tabs è attivo per -pedantic, -std = f95, -std = f2003, -std = f2008 e -Wall.

E -Wall set -Wno-tabs.

Se non aiuta, potrebbe ancora essere che -Wall sovrascriva questa opzione. Allora si può provare a impostare manualmente -Wall senza la parte schede:

-Wall

Abilita opzioni di avviso di uso comune relative all'uso che vi consigliamo di evitare e che riteniamo facili da evitare. Questo include attualmente -Waliasing, -Wampersand, -Wconversion, -Wsurprising, -Wc-binding-type, -Wintrinsics-std, -Wno-tabs, -Wintrinsic-shadow, -Wline-truncation, -Wtarget-lifetime, -Wreal -q-costante e -Wunused.

+0

Ho provato' -Wno-tabs' ma '-Wtabs' ha fatto il trucco. Grazie! – solalito

+0

Aggiungendo un po 'alla tua risposta, '-Wall' non sovrascrive le opzioni' -Wtabs', ma '-pedantic' fa. – solalito

+0

Grazie per il feedback :) Questo è in realtà ciò che mi aspetterei da 'pedantic': lo usi per forzare il comportamento standard, quindi non dovrebbe consentire le schede. –

3

UPDATE: Con GCC/gfortran 5xx (ho notato con 5.3.0), l'utilizzo -Wtabs è stato "invertita", e come si suol dire, "ha reso più sensibile".

vedi qui (https://gcc.gnu.org/gcc-5/changes.html)

ora -Wtabs dà l'avviso non conforme, mentre -Wno-schede SI SPEGNE l'avviso (vale a dire l'opposto di utilizzo precedente).

+0

Wow, interessante svolta degli eventi :) Complimenti per la ricerca, ho modificato la mia risposta per notare che funziona solo fino a 4.x e che 5.x è coperto dalla tua risposta. Sentiti libero di lasciare un commento sulla risposta parzialmente errata la prossima volta, è importante conoscere i limiti di ogni risposta. –

0

Il modo più semplice per eliminare l'avviso nelle versioni 4.x di gfortran è sovrascrivere il flag -Wno-tabs che imposta il flag -Wall.Quindi prima includere -Wall e poi -Wtabs

-Wall -Wtabs