1

proj1別の( )に依存するqtプロジェクトがありますproj2

ディレクトリツリーは次のようになります。

common/
      `--/pr1/ 
            proj1.pri
            main.cpp
      `--/pr2/
            proj2.pri
            src1.cpp
            src2.cpp

proj1 には proj2 が含まれます。

include(../proj2.pri)

proj2.pri では、現在の (pr2) ディレクトリにあるソースが一覧表示されます。

SOURCES += src1.cpp \ 
           src2.cpp 

したがって、ビルドしようとするproj1と、次のようなエラーが発生します。

make: *** No rule to make target `src1.cpp', needed by `src1.o'.  Stop.

pri-files を使用してサブプロジェクトのソースを含める正しい方法はありますか (デバッグのためにそうする必要があります)。

4

1 に答える 1

3

proj1.pri で、proj2.pri をインクルードする前に:

PROJECT_ONE_IS_DEFINED = 1

proj2.pri では:

isEmpty(PROJECT_ONE_IS_DEFINED){ 
    DEPENDPATH += pr2
    INCLUDEPATH += pr2
} !isEmpty(PROJECT_ONE_IS_DEFINED){
    DEPENDPATH += ..\pr2
    INCLUDEPATH += ..\pr2
}

このようにして、プロジェクト 2 は、それ自体で使用される場合は正常に含まれ、プロジェクト 1 の一部として使用される場合は適切に含まれます....

または、pr2 へのパスを project1 の DEPENDPATH に追加するだけで、cpp ファイルへのパスが依存パスに追加されている限り、make は正常に動作します。

編集:

ケースごとに特定のパスを気にせずに多くのプロジェクトに .pri ファイルを含めることができる最も効率的な方法は、追加することです

DEPENDPATH += $$PWD
INCLUDEPATH += $$PWD

各 .pri ファイルの先頭。

于 2013-01-30T14:32:53.067 に答える