2016-10-27 44 views
0

私はカスタムマニフェストファイルを持っており、実行可能ファイルに埋め込みたいと思っています。私はMS Visual Studio 2010コンパイラとQt 5.2.1を使用しています。Qt Creator:.exeにカスタムマニフェストを埋め込む方法

私はIDEとしてQt Creatorを使用し、リリースビルドにはCMakeを使用します。 .proとCMakeファイルにはどのようなオプションを設定する必要がありますか?

私は '/ MANIFEST ...'をフラグのようにリンカに渡そうとしましたが、VS 2010リンカでサポートされていないようです。

答えて

2

最終的に私は解決策を見つけました。

まず.PROファイルに次の行を追加する必要がある:

CONFIG -= embed_manifest_exe 

これはデフォルトのマニフェストファイルの埋め込みを無効にします。

RC_FILE = app_resources.rc 

.rcファイルは通常、.exeファイルにバージョン情報を埋め込むことが含まれていますが、できるだけ早くマニフェストでも実行可能なリソースの一部であるとして、我々は参照することができます:Windowsのリソースファイルを追加する必要があるその後カスタムその中にマニフェストファイル、ちょうどapp_resources.rcに次の行を追加します。1は、リソースIDで

1 24 myapp.exe.manifest 

、24は、リソースタイプである - RT_MANIFEST、およびmyapp.exe.manifestは、私たちの習慣を持つファイルです。現れます。 バージョン情報が必要ない場合、app_resources.rcにはこの1行しか含めることができません。

これだけです。

次のようにCMakeのための手順は次のとおり

1)標的

2のソースのリストでapp_resources.rcを含む)は、デフォルトのマニフェストファイルの埋め込み無効にするには、次の行を追加します。

私の理由から不明な点やMANIFEST:NOは.proファイルでは機能しませんでした。リンカーが不明なオプションエラーで失敗しました。しかし、それはCMakeで動作します。リンカーはVS 2010と同じです...

1

私はqmake側でお手伝いできませんが、CMakeの場合は、マニフェストファイルをターゲットのソースの1つとしてリストするだけで済みます。これにはCMake 3.4以降が必要です(release notes参照)。

+0

チップのおかげで。残念ながら私はCMake 3.1のプロジェクトをすべて持っていますが、これも.proファイルに必要です – rkudinov

関連する問題