Я использую Visual Studio 2012 для разработки своих проектов, и я также установил Visual Studio 2010, что дает мне возможность использовать компилятор VC++10 в Visual Studio 2012 (свойства проекта), но я также установил Visual C++ 6 и почему-то возможность использовать компилятор VC++6 отсутствует в Visual Studio 2012, как мне добавить эту опцию (вручную)?
Можно ли использовать компилятор VC++ 6 в Visual Studio 2012?
Ответы (1)
Ответ определенно может быть. Это кажется вполне возможным, но мне не удалось получить копию VC 6, поэтому я не смог ее проверить. Что мне удалось сделать, так это заставить VS 2012 использовать VC 7 (VS 2002) для компиляции проекта.
Обновление: ответ определенно да. ОП указывает в комментариях, что он смог заставить работать VC 6, используя это решение.
Конфигурация
Я сделал это, установив следующее (в порядке установки):
Windows 7, SP1, 32-разрядная версия
Я выбрал Windows 7, потому что это самая ранняя версия Windows, которая будет поддерживать VS 2012. Я использовал 32-разрядную версию, потому что VS 2002 (VC7) не устанавливается на машину x64.
Visual Studio 2002, SP1
Как я уже говорил, я не мог получить VC6. На сайте Microsoft его не найти. комментарий Брюса под этот вопрос дает следующую полезную информацию:
Visual C++ 6.0 недоступен (в том числе через MSDN) от Microsoft, поскольку он включает в себя Microsoft JVM. Дополнительные сведения см. по этой ссылке. – БрюсКран
Увидев вышеизложенное, я решил, что установка VS 2002 (VC 7) будет следующим лучшим решением.
Очевидно, именно сюда вы бы установили VC 6, если у вас есть копия1.
1Должен отметить для всех, кому это интересно, что VC 6 доступен на Ebay. Если бы мне платили в реальной валюте, а не в баллах, я бы сделал все возможное и получил копию VC 6 для тестирования.
Visual Studio 2010, SP1
Единственная причина этого в том, что это требование для Daffodil. Подробнее о нарциссе ниже.
Visual Studio 2012, обновление 2
Это требование исходного вопроса.
Это набор файлов конфигурации, который позволяет VS 2010 и VS 2012 ориентироваться на старые компиляторы VC.
В настоящее время поддерживаются следующие версии компилятора VC:
- ВК 8 (Visual Studio 2005)
- ВК 7.1 (Visual Studio 2003)
- ВК 7 (Visual Studio 2002)
- ВК 6 (Visual Studio 6)
Я должен отметить, что Daffodil официально не поддерживает VS 2012 в качестве IDE, но, похоже, он работает. С сайта Нарцисс:
Daffodil отлично работает в VS 2012 и более поздних версиях2, если также установлен VS 2010.
2 При использовании VS 2013 и VS 2015 возникает проблема отладки, как указано здесь:
Отладочная информация не совпадает при использовании набора инструментов платформы v60 в Visual Studio 2013
Тестирование
Чтобы проверить вышеизложенное, я создал новый консольный проект C++ Win 32 в Visual Studio 2012. Затем я удалил из проекта все файлы заголовков и cpp — в них есть вещи, специфичные для VS 2012, поэтому они не нужны. Затем я добавил простой файл «hello world», который я мог бы использовать для тестирования:
#include <iostream.h>
void main()
{
cout << "Hello World!" << endl;
}
Используя проект как есть (нацеленный на VS 2012), я попытался его собрать, но это не удалось.
Затем я щелкнул проект правой кнопкой мыши и выбрал свойства. Я выбрал Свойства конфигурации в левой части диалогового окна, а затем в разделе Набор инструментов платформы справа выбрал v70. Вы заметите, что есть вариант для v60:
Затем я сохранил изменения в проекте и выполнил сборку. Он успешно построил exe. Чтобы убедиться, что используется VC 7, я запустил Process Monitor. во время компиляции:
Как видите, компилятор cl.exe вызывается из каталога VC 7.
Последние мысли
Первоначальный вопрос включает в себя компиляцию существующего проекта VC 6. Всего пара замечаний по этому поводу.
Я предполагаю, что для работы ретаргетинга вам придется создать новый пустой проект в VS 2012, а затем добавить все существующие исходные файлы. Причина этого заключается в том, что, очевидно, формат проекта в двух версиях Visual Studio различается.
Как я уже упоминал, я тестировал с использованием VC 7 вместо 6. Я полагаю, что последний шаг для OP — попробовать все это с помощью VC 6. Надеюсь, все это работает.
Ссылки
- Daffodil в CodePlex
- Собственный мультитаргетинг C++ для VS 2010 в блоге команды C++
- VS Android — конфигурация для Android с помощью VS 2010.
- VS-Tool — конфигурации для работы с различными платформами: Clang, EmScripten, MinGW, NACL, Python.
TRACKER : error TRK0005: Failed to locate: "CL.exe".
. Затем я добавил путь bin из VS8 в каталоги исполняемых файлов. Теперь я получаю сообщение об ошибке: C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.targets(62,5): error MSB6006: "CL.exe" exited with code -1073741515
- person Michael Parker; 28.02.2016
1>LINK : fatal error LNK1104: cannot open file 'odbc32.lib'
Итак, я изучаю, зачем это нужно, поскольку моему проекту не нужен этот файл.
- person Michael Parker; 28.02.2016