LNK4075: игнорирование "/EDITANDCONTINUE" из-за спецификации "/OPT:ICF"

Недавно я преобразовал многопроектное решение Visual Studio для использования.dll вместо.libs для каждого из проектов. Однако теперь я получаю предупреждение компоновщика для каждого проекта, как указано в примере. MSDN не помогал в этом. Почему это и как я могу это решить?

Предупреждение 2, предупреждение LNK4075: игнорирование '/EDITANDCONTINUE' из-за спецификации /OPT:ICF LudoCamera.obj

7 ответов

Решение

Вы можете либо иметь "Редактировать и продолжить" поддержку или оптимизацию. Обычно вы ставите "Редактировать и продолжить" в отладочных сборках и оптимизациях в сборках выпуска.

Редактировать и продолжить позволяет изменять код во время отладки и просто держать программу работающей. Это не поддерживается, если код также должен быть оптимизирован.

У меня тоже была эта пробема. Я открыл Свойства проекта, а затем нажал кнопку Общие на вкладке C/C++. Есть опция "Формат отладочной информации", которую я изменил на базу данных программы (/Zi), и больше не получал предупреждения.

Я также получил это предупреждение при преобразовании проекта VS2008 из.lib в.dll, и обходной путь состоял в том, чтобы изменить параметры компоновщика / оптимизации в конфигурации Debug Win32 с Default на:

Ссылки = Хранить данные без ссылок (/OPT:NOREF)

Включить сворачивание COMDAT = не удалять избыточные COMDAT (/OPT:NOICF)

Вы должны установить ОБА проекты "Формат информации отладки" как "База данных программы (/Zi)". Например. Если предупреждение:

предупреждение LNK4075: игнорирование "/EDITANDCONTINUE" из-за спецификации "/OPT:ICF" D:\mypath\project1\project1.obj project2

Затем в ОБА Project1 и свойствах проектов. Установите их как:

свойства проекта-> Свойства конфигурации->C/C++-> Общие-> Формат отладочной информации, установите его как "База данных программы (/Zi)";

Я знаю, что это, они не являются версиями выпуска. Я думаю, что компоновщик все еще думает, что они являются отладочными сборками, в которых все еще есть функция редактирования отладки и продолжения, используемая, когда отладка все еще включена.

Боб.

Нам пришлось установить для параметра "Создать отладочную информацию" значение "Да (/DEBUG)" на панели свойств проекта Linker->Debugging. Не уверен, как это вообще не было установлено для отладочной сборки или почему это не было бы по умолчанию, но вот и все. (VS2010, если это актуально.)

Вы также можете получить эту ошибку, если случайно добавили каталог отладки в свою сборку выпуска. Отметьте Linker->General->Additional Library Directories. Работал у меня.

Другие вопросы по тегам