Хитрость в том, чтобы всегда использовать правильный пакетный файл vcvars. Если у вас установлена только одна версия VisualStudio, это не проблема. Если вы имеете дело с несколькими версиями, такими как я, становится очень легко запустить сборку MSVC ++ 14 в консоли, которая была настроена с помощью файла vcvars MSVC ++ 15. Это может работать или не работать, но все, что вы получаете, будет отличаться от того, что вы собираете из VisualStudio.
Мы решили эту проблему в terp , извлекая правильный файл vcvars из выбранного компилятора и всегда настраивая среду внутри для вызова инструмента. Таким образом, у вас всегда будет правильный файл vcvars для используемого компилятора.
Просто повторюсь: я настоятельно рекомендую не пытаться дублировать вручную то, что файл vcvars делает для вас. Вы обязаны что-то пропустить или сделать это достаточно правильно, чтобы выглядело, как будто оно работает, хотя на самом деле делает что-то немного отличное от того, что вы хотели.