:make
gfortranを使用してFORTRANコードをコンパイルするためにvimを使用しています。コンパイル エラー間をジャンプするクイックフィックス ウィンドウの機能が気に入っています。ここで提案されているgfortran のエラー形式を使用しています。
errorformat=%E%f:%l.%c:,%E%f:%l:,%C,%C%p%*[0123456789^],%ZError: %m,%C%.%#
ほとんどのエラーを検出します。以下を処理する可能性を追加したいと思います
- 警告
- リンカー エラー
- (ボーナス) 2 つの場所に関連するエラー: (1) と (2)
少し前に Intel FORTRAN のエラーフォーマットを作成しようとしたときに、ドキュメントを読みました。おおよその結果だけを得るには、多くの時間がかかりました。警告 '%W' を追加することは、エラー メッセージと同じ構造であるため、それほど難しくないと思います。リンカー エラーについては、ソースとオブジェクトに別のフォルダーを使用し、vpath Makefile 機能を使用しているため、うまくいくかどうかわかりません。
errorformat で処理したい gfortran コンパイラのエラー メッセージの例をいくつか以下に示します。
手伝ってくれてどうもありがとう
エラー例(これまではerrorformatで対応)
folder/file.f90:22.19:
ini=.false.
1
Error: Symbol 'ini' at (1) has no IMPLICIT type
警告の例
folder/file.f90:485.12:
use SomeMod, only: somevar
1
Warning: Unused module variable 'somevar' which has been explicitly imported at (1)
リンカー エラーの例
/tmp/ccPcF56y.o: In function `MAIN__':
test.f90:(.text+0x8e0): undefined reference to `init_'
../../_build/amod.o: In function `__amod_MOD_dostuff':
amod.f90:(.text+0x3e32): undefined reference to `dothis_'
amod.f90:(.text+0x3e74): undefined reference to `dothat_'
collect2: error: ld returned 1 exit status
複数のエラー箇所の例
file.f90:8.8:
use AMod
1
file.f90:231.25:
call init()
2
Error: 'init' at (1) has a type, which is not consistent with the CALL at (2)