2

VC++ 6.0 で 5 年前に書かれたプログラムを維持しようとしています。「共通」ライブラリを使用します。私が抱えている問題は、[ライブラリ ファイル] の [ディレクトリ] を [ で "common/debug" または "common/release" に設定しているかどうかに応じて、これらのライブラリのデバッグ バージョンまたはリリース バージョンのいずれかにリンクすることです。ツール]->[オプション]。

デバッグ バージョンをビルドするときに [common\debug\common.lib] にリンクし、リリース バージョンをビルドするときに [common\release\common.lib] にリンクするにはどうすればよいですか? ライブラリディレクトリに両方のパスがある場合、最初に見つかったパスにリンクしているようです。

4

5 に答える 5

3

インクルードフォルダーにパスを指定する代わりに、構成に応じてライブラリを含めるために使用するすべての最良の方法は、#pragma を使用することです。

一度試してみてください、とても便利です

#ifdef _DEBUG
#pragma comment(lib, "..\\DllTest\\Debug\\DllTest.lib")

#else 
#pragma comment(lib, "..\\DllTest\\Release\\DllTest.lib")

#endif
于 2009-04-01T04:18:05.000 に答える
1

[Project Properties]->[Linker]->[Input]->[Additional Dependencies] では、次のように $(ConfigurationName) プレースホルダーを使用できます。

c:\common\$(ConfigurationName)\common.lib

デバッグ構成では、これは次のように変更されます。

c:\common\Debug\common.lib

リリースでは、次のように変更されます。

c:\common\Release\common.lib
于 2009-03-19T22:46:08.190 に答える
0

[追加の依存関係] フィールドにリンクするライブラリのフル パスを指定できます。これは、デバッグ ビルドとリリース ビルドで異なる値を持つことができます。

于 2009-03-19T22:42:11.867 に答える
0

私が見つけた解決策は、リチャードと「1800情報」のものに少し似ています...

から共通ライブラリ パスを削除しましたTools->Options。ここのパスは、MSVS VC++ 6.0 で実行されているすべてのプロジェクトのすべての構成に対してグローバルです。

Project->Settings次に、構成ごとに適切なライブラリへのフル パスを追加しました。したがって、デバッグ構成には がD:\VSS\Common\Debug\Common.libあり、リリース構成にはD:\VSS\Common\Release\Common.lib. これは機能しているようで、初めてビルドの警告がありません!

正しい方向にあると思われるものを私に向けてくれたすべての提案に感謝します。

--- アリステア。

于 2009-03-20T09:49:40.170 に答える