5

で編集して続行しようとすると、次のメッセージが表示されますVSC15

'file.cpp' in 'LIB.DLL' was not linked with Edit and Continue enabled. 
Ensure that /INCREMENTAL linking is enabled, and the /EDITANDCONTINUE directive is not ignored.

/INCREMENTAL有効になっていることは確認済みですが、2 番目の部分がわかりません。

コンパイラ コマンド ライン:

/Yu"stdfx.h" /GS /analyze- /W3 /Gy /Zc:wchar_t /ZI /Gm- /Od /Fd".\Debug\vc140.pdb" /Zc:inline /fp:fast /D "x86" /D "WIN32" /D "_WINDOWS" /D "DEBUG" /D "_UNICODE" /D "UNICODE" /D "_WINDLL" /errorReport:none /WX- /Zc:forScope /RTC1 /GR /Gd /Oy- /MTd /Fa".\Debug\" /EHsc /Fo".\Debug\" /Fp".\Debug\LIB.pch"

リンカー コマンド ライン:

/OUT:".\Debug\LIB.dll" /MANIFEST:NO /NXCOMPAT /PDB:".\Debug\LIB.pdb" /DYNAMICBASE /DEF:"EXPORT.DEF" /IMPLIB:".\Debug\LIB.lib" /DLL /MACHINE:X86 /NODEFAULTLIB:"libc.lib" /OPT:REF /SAFESEH /INCREMENTAL /PGD:".\Debug\LIB.pgd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:".\Debug\LIB.dll.intermediate.manifest" /MAP /OPT:ICF
4

4 に答える 4

7

コマンドラインを見る:

コンパイラ コマンド ライン:エディット コンティニュは /Gm- と実際には互換性がありません。「最小限の再構築を有効にする」(/Gm) が必要です。

リンカ コマンド ライン: /OPT:REF、/SAFESEH、/OPT:ICF はすべてエディット コンティニュと互換性がないため、LNK4075 が発生するはずです。

LIB.dll のクリーン ビルドを試みると、次のような警告が表示されます。

1>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:REF' specification
1>ConsoleApplication1.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specification
于 2016-06-30T01:36:05.990 に答える
2

リンカー設定の詳細ページで SAFESEH をオフにしてみてください。

/SAFESEH:いいえ

于 2016-05-23T14:54:08.430 に答える
1

vs2015 ケースの完全な公式回答はこちらhttps://blogs.msdn.microsoft.com/vcblog/2016/07/01/c-edit-and-continue-in-visual-studio-2015-update-3/また、これを読むと役立つかもしれませんhttps://blogs.msdn.microsoft.com/vcblog/2013/10/29/the-visual-c-linker-best-practices-developer-iteration/

私の場合、コマンドラインのリンクに互換性のないフラグは見られませんでした。

/LTCG

はデフォルトでオンになっているため、ソリューションのすべてのプロジェクトで追加のリンカー オプションを使用して手動でオフにする必要がありました

/LTCG:オフ

于 2016-08-05T19:26:53.843 に答える