0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

fortranでモジュールのみコンパイルした時のエラーの原因と解決方法

Posted at

問題

gfortranでモジュールファイルのみコンパイルするとき。
コンパイル時に以下のエラーメッセージが現れる。

    C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
    C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o):
    in function `main':
    C:/crossdev/src/mingw-w64-v8-git/mingw-w64-crt/crt/crt0_c.c:18: undefined reference to `WinMain'
    collect2.exe: error: ld returned 1 exit status

原因

このエラーは、リンカがmain関数を見つけられない場合に発生する
https://stackfinder.jp.net/questions/5259714/undefined-reference-to-winmain16
(至極当たり前だが)モジュールのみコンパイルした場合はmain関数を見つけられない

解決方法

解決策1. コンパイル文にmainプログラムを含める
    (1行でmainプログラムまでコンパイルする)
解決策2. gfortranのコンパイルオプションに -c を加える
    (コンパイル、アセンブルを行う。リンクは行わない)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?