私はQtアプリケーションを持っています。ファイルは.pro
でTEMPLATE = app
です。プロジェクトのサブフォルダの1つは、別のQtプロジェクトのgit-submoduleです。ライブラリのコレクションは、.pro
というファイルにTEMPLATE = subdirs
というファイルがあります。スタンドアロンのプロジェクトがうまくコンパイルし.lib
ファイルを生成して他のQtプロジェクトのgit-submoduleとしてのQtプロジェクト
project/
app.pro (TEMPLATE = app)
stuff/
libs/ <-- git-submodule
libs.pro (TEMPLATE = subdirs)
lib1/
lib1.pro (TEMPLATE = lib)
lib2/
lib2.pro (TEMPLATE = lib)
libs
:
グラフィカルにそれは次のようになります。 しかし、app.pro
のTEMPLATE
はではありませんが、この場合、サブディレクトリとしてproject
に何とかlibs.pro
を含める必要があります。たぶん、SUBDIRS += askelib
のようなものをapp.pro
に書くという私の試みは何の効果もありませんでした。 私の目的は、app.pro
というビルドフォルダ内のファイル.lib
を取得することです。 libs
は私の目標を達成するためにlibs
プロジェクト内で何も変更する必要がないので、git-submoduleだと強調します。
私がapp.pro
のTEMPLATE
からsubdirs
に変更するとうまくいくはずです。私をclerifyするに :
subdirs_proj/
app/
libs/
代わりの
app/
libs/
EDIT:プロジェクト階層は、別のネストレベルを達成するため、それは物事がより困難になりますので、しかし、それは私が本当にやりたいことはありません理由:
私の目的は、プロジェクトツリーをできるだけ明確にすることです。 githubからプロジェクトを複製する場合は、そのディレクトリに入り、最上位にapp.pro
と表示されます。そして、すべてが明確で、簡単で美しいです。そしてあなたが奇妙なsubdirs.pro
の上部に表示されているのと同じではありませんが、実際のプロジェクトはapp
サブディレクトリにあります。また、サブアプリケーションのサブフォルダをライブラリサブフォルダと混同する可能性もあります。その名前がapp
とlibs
などのようにはっきりしない場合はtorpedo
およびhelios
。私の考えがはっきりしていることを祈っています:)
これについてサンプルレポを取得することは可能ですか? –
@TarunLalwaniはい、確かに、[this one](https://github.com/AskePit/Memory)です。ここでは、 'subdirs'、ライブラリディレクトリ、' src'ディレクトリの先頭に 'Memory.pro'があります。以前はライブラリを使う前に 'src'ディレクトリには必要がなく、' Memory.pro'は実際のアプリケーションの 'pro'ファイルでした。どちらがより便利だったか –
ここで環境変数を使うのはどうですか?環境変数を使用して 'TEMPLATE = $$(TEMPLATE_ENV)'のような値を取得し、それが[空]の場合(https://stackoverflow.com/questions/13803893/test-if-a-variable-is) -empty-and-give-default-value-of-qmake)には、デフォルト値を割り当てることができます。次に、メインプロジェクトのビルド中にその環境変数をエクスポートし、参照ライブラリプロジェクトの値を上書きできるようにしますか?私はqmakeの専門家ではないので、いくつかの仮定は間違っているかもしれませんが、これが意味をなさないかどうかを見ることができます –