2016-04-05 27 views
0

私はジュニアプログラマーです。私はかなりの依存関係を持つVisual Studio C++プロジェクトを開発しました.Boost、指紋認識ライブラリ、Windows Biometrics Frameworksです。今日の私はWindows標準のWindows UpdateからWindowsのバイオメトリックフレームワークをダウンロードできることを知っています。私はそれについて懸念していません。私の知る限りでは、アプリケーションはWBFの依存関係を検索してリンクする準備ができています。Visual Studioでの依存関係を持つC++アプリケーションの配布

私の懸念は、実行可能ファイルをこの.exeが必要とするすべてのリソースと依存性(Boostと指紋認識SDK)でパックするための最も簡単で最も効率的ではない配布の問題を最小限に抑えます。つまり、このDLLはありません。クライアントのコンピュータのすべてをコンパイルせずに、アプリケーションなどを再インストールしてください。

私はここでいくつかの方法を見ることができました:プロジェクトの設定にリストされたdllをコピーし、静的リンクに変更します...しかし、それが最も簡単な方法かどうかはわかりません。私はこれについて自分の能力をほとんど信用していないし、それらの方法はこれらのことを行うための自動方法があるかどうか疑問に思っています。

答えて

0

私は指紋ライブラリやWBFに慣れていませんが、Boostのほとんどはヘッダーにあり、アプリケーションをコンパイルするとコンパイルされます。スレッドライブラリやシステム固有の呼び出し(CPUコア数の取得など)のように、静的にリンクされているライブラリもあります。

指紋ライブラリの形式はどのような形式がありますか?動的には、少なくとも.dllに対応するimport .libファイルがあります。アプリケーションはコンパイル後にインポータに静的にリンクし、実行時にライブラリにバインドされます。または、コンパイル後にアプリケーションにリンクされた1つの大きな単一の.libにライブラリを含めることができます。両方のオプションが利用可能で、バイナリファイルのみを配布する場合は、静的リンクを使用してください。

+0

ありがとう、私はリンクの背後にある論理を最初に覚えなければならないことを理解しました。少なくとも、このスレッドには他の方法はありません。とにかく、私は自分の依存関係を見つけました。静的リンクでは、プロジェクトにlibファイルを用意する必要はなく、実行可能ファイルに提供する必要があるDLLライブラリが1つありました。私はこの答えを受け入れています。 – rrreche

0

どのようなシステムでも、あなたのアプリケーションリンクとあなたのアプリケーションが使用するすべての外部リソース(画像、設定ファイルなど)をすべてdllライブラリに含める必要があります。私は通常、http://www.jrsoftware.org/isinfo.phpを使って自分のWindowsディストリビューションを作る。 非常に使いやすい。

+0

最終的には、プロジェクトはそれほど複雑ではなく、ライブラリをリンクすることを学んだ。提案していただきありがとうございます! – rrreche

関連する問題