воскресенье, 16 декабря 2012 г.

Как скомпилировать проект в Visual Studio 2012 для Windows XP

Если написать даже элементарную программу "Hello, world" на C++ в Visual Studio 2012
#include <cstdio>

int main()
{
 printf("Hello, world\n");
 return 0;
}
то на Windows XP программа не запустится, а сообщит, что файл "не является приложением Win32":


Но всё же имеется возможность собрать программу, которая заработает под WinXP.

Если в свойства проекта > "Свойства конфигурации" > "Общие" в разделе "Набор инструментов платформы" нет элемента "Visual Studio 2012 - Windows XP (v110_xp)":


то нужно установить Обновление 1 (Service pack 1) для Visual Studio 2012. (Может быть можно поставить отдельное обновление, но я не знаю какое). Во время установки можно заметить:


Теперь зайдя в свойства проекта увидим наличие платформы "Visual Studio 2012 - Windows XP (v110_xp)":


Выбрав её и необходимую конфигурацию (см. "Visual Studio: Чем отличается конфигурация Debug от Release" и "Ссылки на распространяемый пакет Microsoft Visual C++"), можно компилировать проект.


8 комментариев:

  1. Спасибо за совет! Все вышеописанное помогло мне запустить программу на XP.

    ОтветитьУдалить
  2. >>(не забываем про конфигурацию "Release", а также пакеты библиотек).
    А что будет если забыть?

    ОтветитьУдалить
    Ответы
    1. Эти действия проделываются для каждой конфигурации (обычно, Release и Debug). Если не сделать для Release, то проект скомпилируется, но запускаться не будет. Другими словами, проблема останется.

      Удалить
    2. Я к тому, что если Вы что-то не хотите объяснять, то и упоминать не следует или хотя бы слова "подробней об этом тут". Извините за придирку :)

      Удалить
    3. Замечание абсолютно к месту и по делу :)

      Написал сообщение про разные конфигурации и добавил ссылку.

      Удалить
  3. я поставил сразу обновления 2 и такого меню не нашел. подскажите где искать?

    ОтветитьУдалить
    Ответы
    1. Извините, что сразу не ответил, был очень сильно занят.

      Если я правильно понимаю, то обновления 2 вносит некоторые ошибки, которые в обновлении 3 http://support.microsoft.com/kb/2835600/en-us были исправлены (секция "Fixed issues" > "C++"). Попробуйте поставить обновление 3.

      Также можно удалить обновление 2 (Панель управления > Программы и компоненты), а затем поставить обновление 1.

      Что-нибудь помогло? (Если проблема не ушла, то укажите версию OS и VS.)

      Удалить
    2. Про второй пакет обновлений (SP2) не скажу, но на третьем проблем нет.

      Удалить