2011-06-17 25 views
4

私は複数の静的ライブラリとVisual Studioに依存するexeファイルを持っています。これらはすべて1つのslnファイルの一部として管理され、exeファイルは静的ライブラリに依存しています。複数のプロジェクトをQt Creatorでどのように管理する必要がありますか?

これはQt Creatorでどのようにセットアップできますか? 2つのオプションがあるようです: 1. Qt Creatorの "セッション"で複数のプロジェクトを作成します。しかし、セッションはユーザー間で共有されません。だから私はそれがどのように働くか分からない?たとえば、セッションファイルが作成されていますか? 2.サブプロジェクトを使用します。 exeの静的なlibサブprojsを作るか?

推奨事項私はQt Creatorにとって全く新しいので、Linuxのポート用に使用する必要があります。

ありがとうございます! qmakeは、サブプロジェクトとの素敵な.slnを生成subdirsテンプレートと一つのメイン.proファイルを作成し、他の上で各プロジェクトの必要な依存関係を設定するために取得するには

答えて

2

QtCreatorは、メイクファイルを生成し、それから構築するために舞台裏でqmake使用していますが、実行することにより、VSソリューションファイルを生成することができ

qmake ../path/to/source -tp vc 
あなたが使用することもでき

QtのVisual StudioのアドインGUI-しますifyプロセス。また


:ノートで、あなたの実行可能ファイルの.proファイルでこのような

CONFIG(debug, debug|release) { 
    LIBSUFFIX = d 
    win32:LIBS += -L../staticlib1/debug 
    win32:PRE_TARGETDEPS += ../staticlib1/debug/libAmbrosiad.a 
} else { 
    LIBSUFFIX = 
    win32:LIBS += -L../staticlib1/release 
    win32:PRE_TARGETDEPS += ../staticlib1/release/libAmbrosia.a 
} 
unix:LIBS += -L ../libAmbrosia 
unix:PRE_TARGETDEPS += ../libAmbrosia/libAmbrosia$${LIBSUFFIX}.a 

置きのものを使用し、実行ファイルが依存静的libには、変更されるたびに再リンクされていることを確認するために、そのLIBSUFFIXパーツ完全にオプションですが、Qt自体がどのように構築されているかに沿っているので、私もそれを使用しています。 Linux/Macビルドに存在しない "リリース"と "デバッグ"サブディレクトリについて注意してください。そして完全である:かなり冗長なif-elseの条件は、debugreleaseを区別するために、qmakeプロジェクトファイルに組み込まれたThe Right Way (TM)です。簡単な方法はいくつかの状況で壊れることがあります。

+0

ありがとうございました。私は逆を行い、VS slnから.proファイルを作りたいと思います。私はそれをすることは何も見ていない。私は何かを書く必要があるかもしれません。とにかく、subdirsテンプレートが一般的に行く方法だと言っているように聞こえるので、静的ライブラリはexeプロジェクトのサブディレクトリになります。 – glutz

+0

@glutz:逆の場合は、自動化されない場合があります(Visual Studio Qtアドインを試すことはできますが、それはあなたのための基本を得られるかもしれません)。 1つの 'subdirs'' .pro'ファイルがあり、各静的ライブラリ*とexe *のサブディレクトリがあります。 – rubenvb

+0

明らかに私の主な混乱は静的なlibを作成するまで私がテンプレートを設定していないことでした。プロジェクトマネージャーは私にlibをexeプロジェクトに追加する機会を与えてくれませんでした。 – glutz

1

Linuxの場合、セッションファイルは~/.config/Nokia/qtcreatorで作成され、拡張子はqwsですが、これは複数のユーザーにとっては本当に適切なソリューションではないと思います。

+0

右。ユーザー間で共有されることを意図していないセッションが存在する理由についてはっきりしていません。それは、プロジェクトの構造とローカルユーザーの設定が混在しているようです。 VSが.sln(共有)ans .suo(ローカル)のような2つの別個の機能でなければならない。 – glutz

関連する問題