VC2005で作成したスタティックリンクライブラリ(.lib)ファイルA.libを
同じVC2005の別のアプリケーションプロジェクトB(コンソールアプリ)にリンクさせたいです。
プロジェクトBに「A\lib\Debug」、「A\lib\Release」、フォルダを作成し、それぞれにプロ
ジェクトAでビルドしたA.libを置きました。
また、ヘッダーも「A\include\Debug」、「A\include\Release」フォルダを作成し、ここに置
きました。
プロジェクトAのビルド後イベントでプロジェクトBの上記パスにlibファイルとヘッダーをコピー
する処理を入れてます。
リンク方法は「リンカ→入力→追加の依存ファイル」にlibファイル名を記述し、
「リンカ→全般→追加のライブラリディレクトリ」にincludeフォルダパスを記述しています。
この方法で自分はDebugモードもReleaseモードも動作します。
しかし、このプロジェクトAとB両方をsvnにコミットし、別の人が最新に更新し、プロジェク
トAはいじらずにBを実行すると
Debugモードでエラーが出て実行できません。
エラー内容は、
「アプリケーション構成が正しくないため、このアプリケーションの開始に失敗しました。マ
ニフェスト ファイルを参照してエラーの原因を調べてください。」
です。
ただし、一度、プロジェクトAをビルドしたあとにAを実行すると動作します。
どうしてでしょうか?
できればプロジェクトAをビルドしなくてもプロジェクトBを動作させたいのですが。。。
ご教授お願いします。
補足です。
Aのデバッグ情報の形式はエディットコンティニュー用プログラムデータベース(/zI)です。
ちなみにこれを無効にしてもだめでした。
vc80.pdbファイルをBに持ってきてもダメでした。
プロジェクトの設定が悪いと思うのですがどこをどう設定していいやら。
他にプロジェクトの設定で必要な情報ありましたら言ってください。
おそらくそれぞれの環境のアップデート状態が異なるのかと。
実行ファイルが作成された際のバージョンと今の実効環境のバージョンが
違うから確認してねってメッセージです。
VS2005のメニューのヘルプ-バージョン情報で表示されるバージョン情報
もしくはそれぞれの環境でビルドし作成されたマインフェストファイル
(拡張子 .manifest)を開いて中のバージョン(version=)を見比べてみてください。
プロジェクトの全般プロパティで「スタティックライブラリを使用」にすれば
解消されますが、同時に同じプロジェクトを改修/作成するのであれば
低い方の開発環境をアップデートしてバージョンを合わせることを
お奨めします。
打ち間違え
(誤)マインフェスト→(正)マニフェスト
>みいさん情報ありがとうございます。
VC80.DebugCRTのバージョン違いが原因のようです。
8.0.50727.762と8.0.50727.6195と2種類あり、この6195がインストールされていなかったよ
うです。