Можно ли использовать компилятор VС++ 6 в Visual Studio 2012?

Я использую Visual Studio 2012 для разработки моих проектов, и я также установил Visual Studio 2010, что дает мне возможность использовать компилятор VС++ 10 в Visual Studio 2012 (свойства проекта), но я также установил Visual С++ 6 и как-то вариант использования компилятора VС++ 6 отсутствует в Visual Studio 2012, как мне добавить эту опцию (вручную)?

Ответ 1

Ответ, безусловно, может быть. Это кажется вполне возможным, но я не смог получить копию VC 6, поэтому я не смог ее проверить. То, что я смог сделать, это заставить VS 2012 использовать VC 7 (VS 2002) для компиляции проекта.

Обновление: Ответ определенно да. OP указывает в комментариях, что он смог получить VC 6, используя это решение.

Конфигурация

То, как я это делал, это установить следующее (в порядке установки):

Windows 7, SP1, 32 бит

Я выбрал Windows 7, потому что это самая ранняя версия Windows, которая будет поддерживать VS 2012. Я использовал 32-битную версию, потому что VS 2002 (VC7) не будет установлен на машине x64.

Visual Studio 2002, SP1

Как я уже говорил, я не смог получить VC6. Этого не было, где можно было найти на сайте Microsoft. комментарий Брюса под этот вопрос предоставляет эту полезную информацию:

Visual С++ 6.0 недоступен (в том числе через MSDN) из Microsoft, поскольку в него входит Microsoft JVM. Подробнее см. эту ссылку. - BruceCran

После просмотра вышеизложенного я понял, что установка VS 2002 (VC 7) была следующей лучшей.

Очевидно, что здесь вы должны установить VC 6, если у вас есть копия 1.

1 Я должен отметить, что для любого, кто заинтересован, VC 6 доступен на Ebay. Если бы мне платили в реальной валюте вместо очков, я бы прошел лишнюю милю и получил копию VC 6 для тестирования.

Visual Studio 2010, SP1

Единственная причина этого в том, что это требование для Daffodil. Подробнее о Daffodil ниже.

Visual Studio 2012, обновление 2

Это требование из исходного вопроса.

Daffodil

Это набор файлов конфигурации, который позволяет VS 2010 и VS 2012 ориентироваться на более старые компиляторы VC.

В настоящее время это поддерживаемые версии компилятора VC:

  • VC 8 (Visual Studio 2005)
  • VC 7.1 (Visual Studio 2003)
  • VC 7 (Visual Studio 2002)
  • VC 6 (Visual Studio 6)

Я должен отметить, что Daffodil официально не поддерживает VS 2012 как IDE, но, похоже, работает. На сайте Daffodil:

Daffodil отлично работает в VS 2012 и более поздних версиях 2 пока VS 2010 также установлен.

2 Кажется, проблема с отладкой при использовании VS 2013 и VS 2015, как указано здесь:
Отладочная информация не соответствует при использовании набора инструментов платформы v60 в Visual Studio 2013

Тестирование

Чтобы проверить выше, я создал новый консольный проект С++ Win 32 в Visual Studio 2012. Затем я удалил все файлы заголовков и cpp из проекта - у них есть вещи, специфичные для VS 2012, поэтому не нужны. Затем я добавил простой файл "hello world", который я мог бы использовать для тестирования:

#include <iostream.h>

void main()
{
   cout << "Hello World!" << endl;   
}

Используя проект as (таргетинг на VS 2012), я попытался его создать, и он потерпел неудачу.

Затем я щелкнул правой кнопкой мыши проект и выбранные свойства. Я выбрал Свойства конфигурации в левой части диалогового окна, а затем в разделе "Набор инструментов платформы", справа, я выбрал v70. Вы заметите, что есть также опция для v60:

Test Project Properties

Затем я сохранил изменение в проекте и сделал сборку. Он построил exe успешно. Чтобы убедиться, что VC 7 используется, я запустил Process Monitor во время компиляции:

Process Monitor during Compile

Как вы можете видеть cl.exe, компилятор вызывается из каталога VC 7.

Заключительные мысли

Первоначальный вопрос заключается в компиляции существующего проекта VC 6. Всего несколько заметок на этом.

Моя догадка заключается в том, что для перенацеливания вам нужно будет создать новый пустой проект в VS 2012, а затем добавить все существующие исходные файлы. Причина этого заключается в том, что, очевидно, формат проекта отличается между двумя версиями Visual Studio.

Как я уже упоминал, я тестировал с помощью VC 7 вместо 6. Предполагаю, что последний шаг для OP - попробовать все это с помощью VC 6. Надеюсь, все это сработает.

Ссылки

  • Daffodil в CodePlex
  • С++ Native Multi-Targeting для VS 2010 в блоге команды С++
  • VS Android - Конфигурация для таргетинга на Android с помощью VS 2010
  • VS-Tool - Конфигурации для таргетинга на различные фреймворки: Clang, EmScripten, MinGW, NACL, Python