0

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

15

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

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

5 ответ(ов)

0

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

Функция "Редактирование и продолжение" позволяет вносить изменения в код во время отладки и продолжать выполнение программы без её перезапуска. Однако эта функция не поддерживается, если код также нуждается в оптимизации.

0

У меня была такая же проблема. Я открыл свойства проекта и затем выбрал вкладку C/C++, после чего нажал на 'Общие' (General). Там есть опция 'Формат отладочной информации' (Debug Information Format), которую я изменил на 'База данных программы' (/Zi), и предупреждение больше не появлялось.

0

Я тоже столкнулся с этим предупреждением при конвертации проекта VS2008 из .lib в .dll. Решение, которое мне помогло, заключалось в изменении настроек компоновщика (Linker/Optimization) для конфигурации Debug Win32. Замените настройки по умолчанию на следующие:

  • References = Сохранять неиспользуемые данные (/OPT:NOREF)
  • Enable COMDAT Folding = Не удалять избыточные COMDAT'ы (/OPT:NOICF)

После внесения этих изменений предупреждение должно исчезнуть.

0

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

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

То в СВОИХ свойствах project1 и project2 сделайте следующее:

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

0

Я понимаю, в чем дело: ваши .dll файлы не являются релизными версиями. Я думаю, что компоновщик по-прежнему считает их отладочными сборками, у которых всё еще включена функция "Редактировать и продолжить" для отладки.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь