忍者ブログ
開発中に遭遇した落とし穴や忘れそうな事柄を書いた個人メモ
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
フリーエリア
最新コメント
[02/03 NONAME]
最新トラックバック
プロフィール
HN:
No Name Ninja
性別:
非公開
バーコード
ブログ内検索
アクセス解析
28
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

VisualStudio2010において、依存関係の取り扱いが2008以前と異なる
(今回は、SP1で確認してます)

たとえば、プロジェクト内にAスタティックライブラリーとBアプリケーション(EXE,DLLなど)
のサブプロジェクト登録して、BアプリケーションにAスタティックライブラリをリンクする場合、


2008までは、プロジェクト依存関係を定義するだけで、Bアプリケーションは、Aスタティックライブラリ
を自動的にリンクできたが、2010からはこれでは、リンクされない。

Bアプリケーションで、Aスタティックライブラリを自動リンクさせる場合、Bアプリケーションのプロパティを
を開き、共通プロパティより、「新しい参照の追加」で、Aスタティックライブラリのサブプロジェクトを追加する
必要がある。
ここで、追加すると、プロジェクト依存関係も合わせて設定される。

とりあえず、今まで設定でなくこんな方法になったかは、リンクの設定を細かく設定できるとして、
納得するとしても、なぜ中途半端な、プロジェクト依存関係の手順が残されているのかは不明である。

さらに、あたまを悩ますのは、
たとえば、Aスタティックライブラリを、あらたに、AAスタティックライブラリのサブプロジェクトを作成して、
Aスタティックライブラリと結合させる場合、今回の方法で「新しい参照の追加」をAスタティックライブラリ
から結合させたところ、依存関係は成立するが、デフォルトでは結合されない。

結合させる場合、詳細設定であるプロジェクト参照のプロパティの項目にある「ライブラリ依存関係のリンク」
をTrueにする必要がある(BアプリケーションとAスタティックライブラリとの参照追加では、デフォルトTrueになっているのに、スタティックライブラリからの追加では、デフォルトFalseになる)。
そのため、BアプリケーションにAスタティックライブラリを追加しただけでは、AAスタティックライブラリーのオブジェクトは、参照できず、リンクエラーになる。

補足だが、AとAAプロジェクトを「ライブラリ依存関係のリンク」でTrueにしなくても、
Bアプリケーションをリビルドすれば、リンクは成功した。
なぜ?これは私だけ??


以上、C++を使用する場合、ほとんど罠に近いと思われるが、
開発言語の主体が、.NET側になったための弊害なのだろうか?



拍手

PR
Copyright c 技術メモ All Rights Reserved
Powered by ニンジャブログ  Designed by ピンキー・ローン・ピッグ
忍者ブログ / [PR]