Я пытался скомпилировать наш проект в Visual Studio 2010, используя компилятор 2005 года, и наткнулся на эту странную ошибку.
В этом конкретном файле происходит сбой компилятора, когда я пытаюсь скомпилировать его из VS2010 с помощью диалогового окна ошибки «Оптимизирующий компилятор Microsoft (R) C / C ++» с кнопками «не отправлять»). Я посмотрел, как VS2010 вызывает компилятор 2005 года, и заметил некоторые отличия от того, как VS2005 вызывает его. Поэтому я начал удалять эти различия по одному при попытке компиляции после каждой попытки, и как только я убрал флаг /Gd
, файл успешно скомпилирован.
Глядя на документы компилятора, этот флаг управляет соглашением о вызовах и устанавливает его в __cdecl, который используется по умолчанию. Разница лишь в том, что в VS2005 он пропущен, но VS2010 решает добавить его в командную строку, что приводит к сбою.
Кто-нибудь сталкивался с этим или знает способ обойти эту проблему? Я не могу найти способ заставить VS2010 сбросить /Gd
из командной строки, хотя это по умолчанию. Единственное, что я могу найти, это как добавлять параметры, а не удалять.
Спасибо.