- PR -

Visual Studio C++ .net2003におけるプロジェクト依存関係の問題

1
投稿者投稿内容
赤トウガラシ
会議室デビュー日: 2003/12/29
投稿数: 3
投稿日時: 2003-12-30 00:19
 仕事上の必要に迫られ、3週間ほど前、10年間のUNIX生活からついに
Windowsの世界に足を踏み入れたWindowsの素人です。よろしくお願いします。

 IDEを使った「プロジェクト」とか「ソリューション」にもようやく慣れて、
LinuxとWindows双方で動作する次のような小さな「ソリューション」を
まとめようとしていて、つまづいています。

(1) Project-1: AAA.dllを作る(Linuxでは、libA.so)
(2) Project-2: BBB.dllを作る(Linuxでは、libB.so)。
(3) Project-3: AAA.dllとBBB.dllを使って、コンソール・アプリC.exeを作る。
(4) Project-4: AAA.dllとBBB.dllを使って、コンソール・アプリD.exeを作る。
(5) Project-5: AAA.dllとBBB.dllを使って、コンソール・アプリE.exeを作る。
(6) Project-6: AAA.dllとBBB.dllを使って、コンソール・アプリF.exeを作る。
(7) Project-7: AAA.dllとBBB.dllを使って、コンソール・アプリG.exeを作る。
( Project-8: AAA.dllとBBB.dllを使って、コンソール・アプリH.exeを作る。

 それぞれのProjectを順次ビルドし、C.exe〜H.exeがきちんとできる事を
確認したので、全部を通しで一気に作るため、「空のソリューション」を
作って、これらのProjectを「既存のプロジェクトの追加」で追加しました。
各Projectの依存関係は上の通りで、AAA.dllを作った後、BBB.dllが作成される
よう「依存関係」を設定し、「プロジェクトのビルド順序」も上記の通り
となりました。
 しかし、AAA.dllを正常に作った後、BBB.dllを作るところで、リンクエラーが発生
するようになってしまいました。Debug構成時の「リンカ・コマンドライン」を
見ると、

/OUT:"N:\/lib/win/Debug/BBBd.dll" /INCREMENTAL /LIBPATH:"N:\/lib/win/Debug" /LIBPATH:"M:\\BDF\win\bdf" /DLL /DEBUG /PDB:"N:\/lib/win/Debug/BBBd.pdb" /SUBSYSTEM:WINDOWS /IMPLIB:"N:\/lib/win/Debug/BBBd.lib" /MACHINE:X86 AAAd.lib BDFd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \\lib\win\Debug\AAAd.lib

となっており、最後の項「\\lib\win\Debug\AAAd.lib」がオープンできない
ためのエラーであることが分かりました。
実際そのようなファイルはありません(ドライブ名も含まれていませんし)。
また、この最後の項は、どの*.sln, *.vcprojファイルにも含まれていません。

 プロジェクト間の依存関係を全て解除すると、最後の項はリンカのコマンドライン
から消えるため、正常にビルドできます。
この最後の項はどのような理由で入ってくるのでしょうか?
また、この項を無効にする(入れない)ためのオプションはあるのでしょうか?
色々調べたのですが、発見できずにいます。

 VS.net2003開発環境でのビルドは、Linux環境に比べかなり時間がかかるので、
バッチ処理ができないと苦痛です。
iStation
大ベテラン
会議室デビュー日: 2003/12/08
投稿数: 158
投稿日時: 2003-12-30 14:52
引用:

 VS.net2003開発環境でのビルドは、Linux環境に比べかなり時間がかかるので、
バッチ処理ができないと苦痛です。



ソリューションのバッチビルドは、devenv /build で可能ですよ!

[ メッセージ編集済み 編集者: iStation 編集日時 2003-12-30 14:59 ]
赤トウガラシ
会議室デビュー日: 2003/12/29
投稿数: 3
投稿日時: 2003-12-30 22:58
引用:

ソリューションのバッチビルドは、devenv /build で可能ですよ!



IDEのバッチ・ビルドの仕組みを何とか使ってみようと思ったのですが、
このコマンドラインの方が好きです。Perlのスクリプトできれいに
まとまりました。アドバイスありがとうございました。


[ メッセージ編集済み 編集者: 赤トウガラシ 編集日時 2003-12-30 23:09 ]
1

スキルアップ/キャリアアップ(JOB@IT)