Согласование переключателей компилятора и компоновщика VS2010 и VS6 для устаревшей сборки.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Согласование переключателей компилятора и компоновщика VS2010 и VS6 для устаревшей сборки.

Сообщение Anonymous »

Для устаревшего проекта у меня есть решение в Visual Studio 2010, которое компилируется с помощью компилятора Visual Studio 6 с использованием расширения Daffodil для Visual Studio 2010.

Я пытаясь получить входные данные компилятора (и компоновщика), равные (насколько это возможно) входным данным, которые я имел бы при использовании Visual Studio 6. Поэтому я сравниваю файл журнала сборки проекта VS2010 с файлом журнала сборки тот же проект в VS6.

Я заметил, что при сборке в VS2010 переключатели компилятора, передаваемые в сгенерированной командной строке, отличаются. Некоторые из этих различий я могу исправить в настройках файла проекта в VS2010, но другие я не могу найти: например, переключатели /FD и /TP присутствуют при сборке с VS6, но отсутствуют при сборке с помощью VS6. сборка с VS2010, и я не могу найти эти переключатели нигде в настройках проекта в IDE. и еще другие различия, которые я не могу устранить, потому что не могу найти переключатели по умолчанию для VS6 (да, я пробовал Google): например, переключатель /EHsc присутствует при сборке с VS2010, но отсутствует при сборке с VS6, это разница или это значение по умолчанию для компилятора VS6?

Поэтому мой вопрос:
  • Есть ли список настроек по умолчанию для компилятора VS6?
  • И для устранения неполадок: как мне увидеть, какие переключатели вводятся или отвергаются IDE или Daffodil?
PS:

* переключатели компилятора, которые, как я заметил, присутствуют в VS6, но отсутствуют в VS2010: /FD

* переключатели компилятора, которые я заметил замечено отсутствие в VS6, но присутствует в VS2010: /EHsc /Gd /TP /WX- /O2 /Oy-

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

ОБНОВЛЕНИЕ: Хорошо, вот что я нашел и решил:
  • < li>Переключатель /WX- (рассматривать предупреждения как ошибки), вероятно, безвреден, если предположить, что он является отрицанием переключателя, который в любом случае отсутствовал изначально, похоже, не имеет никакого эффекта, я подозреваю, что он введен Daffodil < /li>
  • Переключатель /O2 (в пользу быстрого кода) подразумевает несколько других переключателей оптимизации и является серьезной ошибкой, устраненной путем очистки настройки оптимизации в проекте. установка
  • Переключатель /Oy- (опустить указатель кадра) также, вероятно, безвреден, если предположить, что это отрицание переключателя, который все равно отсутствовал изначально, похоже, не имеет любой эффект, я подозреваю, что он был введен Daffodil
  • Существовал переключатель /D _VC80_UPGRADE=0x0600, который был внедрен IDE, но он не имеет смысла для компилятора VS6, поэтому он безвреден < /li>
    Переключатель /EHsc (синхронная обработка исключений), по всей видимости, аналогичен переключателю /GX, который уже присутствовал изначально, так что, похоже, все в порядке
    Переключатель /Gd (соглашение о вызовах cdecl по умолчанию), по-видимому, используется по умолчанию для компилятора VS6, поэтому его присутствие безвредно. Я подозреваю, что он введен либо Daffodil, либо IDE.
  • Переключатель /TP (рассматривать все файлы как исходные файлы C++). Я нигде не могу найти, как это настроить, но со смешанными источниками это потенциально опасно, я не знаю как избавиться от этого переключателя, он вводится либо Daffodil, либо IDE
А потом компоновщик переключается... Мне удалось выровняйте большинство из них, за исключением:
  • Переключатель /stack (зарезервированный размер стека) имеет шестнадцатеричное значение в VS6, но десятичное и заключено в кавычки в VS2010, поэтому мне пришлось указать их в командной строке, но...
  • Переключатели /machine:I386 и /mapinfo:lines не являются известны в VS2010, поэтому мне пришлось указать их в командной строке. они добавляются в самый конец командной строки компоновщика после списка файлов, что легко не заметить, и я не уверен на 100%, что компоновщик действительно подбирает дополнительные переключатели после списка файлов..


Подробнее здесь: https://stackoverflow.com/questions/126 ... gacy-build
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка компилятора или ошибка компоновщика? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • В заголовке отсутствует встроенное объявление: ошибка компоновщика или компилятора?
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как исправить ошибку «пространство имен x уже содержит определение для x»? Произошло после преобразования в VS2010.
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Директива препроцессора публикации VS2010
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • «Установка» Own в VS2010
    Anonymous » » в форуме C++
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»