最近、マルチプロジェクトのVisual Studioソリューションを変換して、各プロジェクトで.libsの代わりに.dllsを使用しました。ただし、例に示されているように、プロジェクトごとにリンカーの警告が表示されます。MSDNは、これに関してそれほど役立つものではありませんでした。これはなぜですか、どうすれば解決できますか?
警告2警告LNK4075:「/ OPT:ICF」仕様LudoCamera.objのため、「/EDITANDCONTINUE」を無視します
最近、マルチプロジェクトのVisual Studioソリューションを変換して、各プロジェクトで.libsの代わりに.dllsを使用しました。ただし、例に示されているように、プロジェクトごとにリンカーの警告が表示されます。MSDNは、これに関してそれほど役立つものではありませんでした。これはなぜですか、どうすれば解決できますか?
警告2警告LNK4075:「/ OPT:ICF」仕様LudoCamera.objのため、「/EDITANDCONTINUE」を無視します
「編集して続行」のサポートまたは最適化を行うことができます。通常、デバッグ ビルドには「エディット コンティニュ」を配置し、リリース ビルドには最適化を配置します。
エディット コンティニュを使用すると、デバッグ中にコードを変更し、プログラムを実行し続けることができます。コードも最適化する必要がある場合はサポートされません。
私もこの問題を抱えていました。[プロジェクト プロパティ] を開き、[C/C++] タブの [全般] をクリックしました。「Debug Information Format」というオプションがあり、これを Program Database (/Zi) に変更しましたが、警告は表示されなくなりました。
VS2008 プロジェクトを .lib から .dll に変換するときにもこの警告が表示されました。回避策は、Debug Win32 構成のリンカー/最適化設定をデフォルトから次のように変更することでした。
参照 = 非参照データを保持 (/OPT:NOREF)
COMDAT フォールディングを有効にする = 冗長な COMDAT を削除しない (/OPT:NOICF)
両方のプロジェクトの 'Debug Information Format' を 'Program Database(/Zi)' として設定する必要があります。例えば。警告が次の場合:
警告 LNK4075: '/OPT:ICF' 仕様のため '/EDITANDCONTINUE' を無視します D:\mypath\project1\project1.obj project2
次に、project1 とプロジェクトのプロパティの両方で。次のように設定します。
プロジェクト プロパティ -> 構成プロパティ -> C/C++ -> 一般 -> デバッグ情報形式、「プログラム データベース (/Zi)」として設定します。
私はそれが何であるかを知っています.dllはリリースバージョンではありません. リンカはまだデバッグ ビルドであると考えていると思いますが、デバッグがまだオンになっているときに使用されるデバッグ編集と継続機能が残っています。
ボブ。