2017-10-28 3 views
0

QTプロジェクトをコンパイルしています。私はqmakeとコンパイルするmakeを実行しました。QT makeはビルド時に大きな出力を持っています

cppをコンパイルするたびに、20行の冗長出力があります。

私はちょうど1行とmakeを変更すると、その1変更の出力は20行になります。

この出力は正確には何ですか、それを制限する方法はありますか?

次の出力は、単一の行を変更し、その単一のcppをコンパイルすることです。

g++ -c -g -Wextra -std=c++0x -DGLOGG_DATE=\"`date +"%F"`\" -DGLOGG_VERSION=\"`git describe`\" -DGLOGG_COMMIT=\"`git rev-parse --short HEAD`\" -DGLOGG_SUPPORTS_INOTIFY -O2 -Wall -W -D_REENTRANT -fPIC -DFILELOG_MAX_LEVEL="logDEBUG" -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -Isrc -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I.moc/release-shared -I.ui/release-shared -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o .obj/release-shared/filterset.o src/filterset.cpp 
g++ -m64 -Wl,-O1 -o release/glogg .obj/release-shared/main.o .obj/release-shared/session.o .obj/release-shared/abstractlogdata.o .obj/release-shared/logdata.o .obj/release-shared/logfiltereddata.o .obj/release-shared/logfiltereddataworkerthread.o .obj/release-shared/logdataworkerthread.o .obj/release-shared/compressedlinestorage.o .obj/release-shared/mainwindow.o .obj/release-shared/crawlerwidget.o .obj/release-shared/abstractlogview.o .obj/release-shared/logmainview.o .obj/release-shared/filteredview.o .obj/release-shared/optionsdialog.o .obj/release-shared/persistentinfo.o .obj/release-shared/configuration.o .obj/release-shared/filtersdialog.o .obj/release-shared/filterset.o .obj/release-shared/savedsearches.o .obj/release-shared/infoline.o .obj/release-shared/menuactiontooltipbehavior.o .obj/release-shared/selection.o .obj/release-shared/quickfind.o .obj/release-shared/quickfindpattern.o .obj/release-shared/quickfindwidget.o .obj/release-shared/sessioninfo.o .obj/release-shared/recentfiles.o .obj/release-shared/overview.o .obj/release-shared/overviewwidget.o .obj/release-shared/marks.o .obj/release-shared/quickfindmux.o .obj/release-shared/signalmux.o .obj/release-shared/tabbedcrawlerwidget.o .obj/release-shared/viewtools.o .obj/release-shared/encodingspeculator.o .obj/release-shared/gloggapp.o .obj/release-shared/platformfilewatcher.o .obj/release-shared/inotifywatchtowerdriver.o .obj/release-shared/watchtower.o .obj/release-shared/watchtowerlist.o .obj/release-shared/qrc_glogg.o .obj/release-shared/moc_abstractlogdata.o .obj/release-shared/moc_logdata.o .obj/release-shared/moc_logfiltereddata.o .obj/release-shared/moc_logfiltereddataworkerthread.o .obj/release-shared/moc_logdataworkerthread.o .obj/release-shared/moc_mainwindow.o .obj/release-shared/moc_crawlerwidget.o .obj/release-shared/moc_abstractlogview.o .obj/release-shared/moc_optionsdialog.o .obj/release-shared/moc_filtersdialog.o .obj/release-shared/moc_filewatcher.o .obj/release-shared/moc_quickfind.o .obj/release-shared/moc_quickfindpattern.o .obj/release-shared/moc_quickfindwidget.o .obj/release-shared/moc_menuactiontooltipbehavior.o .obj/release-shared/moc_overviewwidget.o .obj/release-shared/moc_quickfindmux.o .obj/release-shared/moc_tabbedcrawlerwidget.o .obj/release-shared/moc_externalcom.o .obj/release-shared/moc_viewtools.o .obj/release-shared/moc_gloggapp.o .obj/release-shared/moc_platformfilewatcher.o -L/usr/X11R6/lib64 -lboost_program_options -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Core -lGL -lpthread 

答えて

1

makeの実行時の出力は、プロジェクトをコンパイルするために実行されるコマンドです。

qmakeを呼び出すときにあなたがあなたの.PROファイルまたはいずれかCONFIG+=silentを使用することができ、これらの出力を削除する場合:

qmake CONFIG+=silent myproject.pro 
make 

を生成しますそう短い出力は

compiling file1.cpp 
compiling file2.cpp 
linking app.exe 

を例えば詳細には、cppファイルを変更すると、出力に2行が表示されます。 cppファイルをオブジェクトファイルにコンパイルするコマンド用のファイルと、新しいオブジェクトファイル(および変更されなかったファイル)を新しい実行ファイルにリンクするコマンド用のファイル。これは貼り付けた出力とまったく同じです。コンソールあなたは、多くの行には長​​すぎるラップラインを使用しているので、あなたはより多くの行としてそれを見ることができます

g++ -c -o .obj/release-shared/filterset.o src/filterset.cpp 
g++ -o release/glogg <list of object files> 

:あなたはすべてのオプションを削除した場合、あなたはで終わります。

また、.hファイルを編集した場合、変更された.hファイルを直接的または間接的に含むすべてのcppファイルが再コンパイルされるため、より多くのファイルを再コンパイルするのが普通です。また、Qtを使用しているので、QObject派生クラスの.hファイルを変更すると、2つのコマンドが実行されます.1つはmoc.cppファイルを生成するコマンド、もう1つはmoc.cppファイルをコンパイルするコマンドです。

関連する問題