VisualStudio2010を使用してCでWindowsコードを開発しています。
私はいくつかの関連プロジェクトに取り組んでいます:静的ライブラリ、DLL、および実行可能ファイル。DLLには静的ライブラリがリンクされている必要があり、実行可能ファイルはDLLに依存します。(「暗黙の」DLLリンクを使用しています。DLLのロードとアンロードを制御する必要はありません。)
現在、3つの個別のVS2010プロジェクトがありますが、「サブプロジェクト」として設定できることはわかっています。静的ライブラリはDLLのサブプロジェクトであり、DLLはEXEのサブプロジェクトである必要があります。
私は以下を解決したい:
EXEを再構築すると、必要に応じてDLLが再構築され、DLLビルドは必要に応じて静的ライブラリを再構築する必要があります。EXEを開いて
F7
キーを押すだけで、すべてがビルドされます。EXEをデバッグとして再構築すると、DLLのデバッグ
.lib
ファイルとリンクするはずです。同様に、EXEをReleaseとして再構築すると、DLLのRelease.lib
ファイルとリンクするはずです。サブプロジェクトを正しく設定した場合、これは自動的に機能しますか?
編集:私は進歩を遂げました。まず、DLLプロジェクトで、静的ライブラリを使用File / Add
してから追加することを選択しました。Add Existing Project
(これはFile
、私が知る限り、メニューでのみ使用できます。右クリックメニューにはありません。)次に、左側の[ソリューションエクスプローラー]サイドバーでDLLプロジェクトをクリックし、右クリックしました。Project Dependencies...
DLLプロジェクトが静的ライブラリプロジェクトに依存することを選択して設定します。静的ライブラリプロジェクトは最初にビルドする必要があります。Visual Studioは、リンクの依存関係を魔法のように設定したようですF7
。DLLプロジェクトでキーを押すと、静的ライブラリプロジェクトがビルドされます。
EXEプロジェクトに対して上記の手順を繰り返してみました。これでDLLがビルドされますが、まだ正しくリンクされていません。リンカは、DLLからエクスポートされた関数が使用できないと文句を言っています。