0

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

もちろん、そのような問題を起こさない他のプロジェクトと同じです。

何が起こっているのか誰にも分かりますか?

4

1 に答える 1