qmake と MingW と gcc (および Qt 5.9.4) を使用する QtCreator プロジェクトがあります。デバッグ モードで qmake を実行すると、非常に長い gcc コマンドが生成され、切り捨てられます。切り捨てられたビットはソース ファイルの名前とパスであるため、当然のことながら、gcc は致命的なエラー : no input file で直接終了します。
qmake によって生成された (および生成された Makefile にある) gcc コマンドは、次のようになります。
<mode>/mtrx_2x2.o: ../<some path>/mtrx_2x2.c \
../<some path>/mtrx_2x2.h \
../<some path>/mtrx_struct.h \
../<some path>/mtrx_nxn.h
$(CC) -c $(CFLAGS) $(INCPATH) -o <mode>/mtrx_2x2.o ../<some path>/mtrx_2x2.c
<mode>
選択したモードに応じて、release
またはのいずれかです。debug
そのプロジェクトのデバッグ モードでは (ただし、そのプロジェクトのリリースではなく、リリースでもデバッグでも、他のプロジェクトでもそうではありません)、変数INCPATH
は他のどの場合よりもはるかに長いものに展開され、それが切り捨ての原因となります。 .
具体的には、リストされているインクルードフォルダーのほとんど-I<path>
(このプロジェクトのリリースモードや他の同様のプロジェクトでもこのようにリストされています)もリストされてい-isystem"<path>"
ます (これは、そのプロジェクトのデバッグモードに固有のものです)。
ここで QtCreator によって実行される qmake コマンド:
C:\Qt\Qt5.9.4\5.9.4\mingw53_32\bin\qmake.exe <some path>/project.pro -spec win32-g++ "CONFIG+=debug" && C:/Qt/Qt5.9.4/Tools/mingw530_32/bin/mingw32-make.exe qmake_all
もちろん、そのような問題を起こさない他のプロジェクトと同じです。
何が起こっているのか誰にも分かりますか?