2016-04-12 16 views
1

大学のプロジェクトでは、GUI用にQtを使うOpenGLアプリケーションを作った。 qmake -spec macx-g++ project.proを使用すると、Makefileを作成できます。次にmakeを実行すると、正しくアプリケーションが作成されます。しかし、ときに私は、プロジェクト内の他の人に完全なフォルダを送信し、同じフォルダに、彼はqmake; makeそれが正常に動作していないときに彼がmake彼は、しかし、エラーにqmakeで作られたメイクファイルは自分のPCでしか動かない

Makefile:209: warning: overriding commands for target `moc_window.cpp' 
Makefile:203: warning: ignoring old commands for target `moc_window.cpp' 
make: *** No rule to make target `/usr/lib64/qt-3.3/mkspecs/default/qmake.conf', needed by `Makefile'. Stop. 

を取得ありません。問題は、コードを渡すときに教授がqmakeを利用できるかどうかわからないため、makeだけを使用して作業したいと考えています。 qmakeをもう一度する必要なく、qmakeで作られたMakefileを追加する必要があるものがありませんか?当社の.proファイルは以下のとおりです。

TEMPLATE = app 
TARGET = smoke 

QT = core gui opengl 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

SOURCES += \ 
    fluids.cpp \ 
    simulation.cpp \ 
    visualization.cpp \ 
    window.cpp \ 
    myglwidget.cpp \ 
    vector.cpp \ 
    grid.cpp \ 
    scalar.cpp 

HEADERS += \ 
    window.h \ 
    myglwidget.h \ 
    simulation.h \ 
    vector.h \ 
    grid.h \ 
    visualization.h \ 
    scalar.h 

INCLUDEPATH += fftw-2.1.5/include /usr/local/include include 
LIBS += -L"$$_PRO_FILE_PWD_/fftw-2.1.5/lib" -lrfftw -lfftw -framework OpenGL -framework GLUT -stdlib=libc++ 

QMAKE_CXXFLAGS += -stdlib=libc++ 
QMAKE_CXXFLAGS += -std=c++11 


FORMS += \ 
    window.ui 
+1

*教授がqmakeを利用できるかどうかわかりません。*プロジェクトをコンパイルするためにQtが必要な場合は、 'qmake'を利用できます。 'Makefile's(あるいは他のビルドアーティファクト)を運んではいけません。 – peppe

+0

'make:*** 'Makefile'が必要とするターゲット '/usr/lib64/qt3.3/mkspecs/default/qmake.conf'を作成するルールはありません。 'はqmakeがユーザのQt設定に依存してmakefileをビルドすることを私に示します。したがって、Qtプロジェクトを構築するには、Qtが必要です(デフォルトでqmakeが必要です)。 –

+0

ああ、私は 'qmake'を' Makefile'にする機能を理解していませんが、なぜ 'qmake'はアプリケーションdirecltyをビルドしていませんか?私はMakefileを使って誰かが 'make 'だけを使ってビルドすることを期待していました –

答えて

3

ビルドディレクトリは移植性がありません。これはqmakeを実行したシステムと、qmakeを実行した特定のQtインストールでのみ動作することを意味します。各Qtのインストールには独自のqmakeがあることを思い出してください。 3つのQtバージョンをお持ちの場合はそれぞれを使用してそのバージョンを使用してプロジェクトを構築する必要があります。

あなたは船.proファイル、ソースが含まれている必要があり、そして他のどんなビルドがために呼び出す、などのアイコンファイル、リソース、などの

受信者は、それを構築するために、すべきプロジェクト:

  1. ビルドフォルダを作成します。
  2. cdをビルドフォルダに追加します。あなたはQtのプロジェクトを配布し、構築する方法です
  3. qmake /path/to/sources/project.pro && make -j

なぜqmakeは、直接アプリケーションを構築しないのですか?

なぜあなたはあなた自身の靴を作りませんか?理由は同じです。車輪を再構築しないでください。もちろん

、エンジニアは時々スクラッチにかゆみを持っています。 Qt Build System (qbs)と入力します。プロジェクトのビルドが.qbsファイルの場合は、次のようにします。

  1. ビルドルートフォルダを作成します。
  2. cdビルドルートフォルダに移動します。
  3. qbs -f /path/to/sources/project.qbs - プロジェクトをビルドします。
関連する問題