У меня есть следующие проекты в решении Visual Studio 2012:
- Native (no
/clr
) static lib project, скомпилированный с/ZI
для редактирования и продолжения. - Проект С++/CLI DLL, который ссылается на вышеуказанный статический lib.
Проект С++/CLI строится со следующим предупреждением:
warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:LBR' specification
Если/OPT: NOLBR добавляется в параметры компоновщика проекта С++/CLI, предупреждение становится:
warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
Любая попытка изменить настройку инкрементной привязки проекта С++/CLI не изменяет предупреждение (проекты С++/CLI никогда не связывают инкрементально).
Я понимаю, что я не смогу использовать Edit And Continue в проекте С++/CLI, потому что это не поддерживается. Действительно, изменение /ZI to/Zi (отключение Edit And Continue) в статическом проекте lib исключает предупреждение, но я не могу этого сделать - другим пользователям, не являющимся CLR этого lib, необходимо использовать Edit And Continue.
Как я могу избавиться от этого предупреждения, не отключая Edit And Continue в статическом lib (и, надеюсь, не поддерживая отдельную конфигурацию сборки для собственных и CLR-пользователей статического lib)? Я имею в виду, есть ли способ попросить компоновщика игнорировать директиву /EDITANDCONTINUE
, встроенную в статическую lib, указанную в ссылке (почти так же, как /NODEFAULTLIB
может игнорировать директивы /DEFAULTLIB
)?
Я создал минимальное решение VS, которое воспроизводит описанную проблему.