Предполагается, что Visual C++ 2005 Express Edition
(Microsoft Visual Studio 2005) в Windows XP
у вас уже установлен. В процессе компиляции исходников на C++ могут возникать ошибки типа "fatal error C1083: Cannot open include file: 'windows.h'", "Cannot include "winsock2.h"" и т.п.
Появление ошибок "fatal error C1083: Cannot open include file: 'windows.h'", "Cannot include "winsock2.h"" говорит про отсутствие в системе необходимых библиотек или про отсутствие нужных настроек и СИСТЕМНЫХ переменных с полными путями к этим библиотекам.
Для полноценной (успешной) компиляции большинства исходных кодов на C++ в Visual C++ 2005 Express Edition
от Microsoft Visual Studio 2005, нам обязательно требуется установка "Microsoft® Windows® SDK", для ОС Windows Server 2003, Windows Server 2008, Windows Vista, Windows XP
нам нужен Windows SDK for Windows Server 2008 and .NET Framework 3.5
(1.3 GB) и опционально DirectX SDK
(571.7 MB):
После загрузки и установки "Windows SDK for Windows Server 2008 and .NET Framework 3.5" откройте Visual C++, в панели управления Visual C++ 2005 Express Edition
от Microsoft Visual Studio 2005 выберите "Tools -> Options", разверните пункт "Projects and solutions", выберите подпункт "VC++ Directories" на этой вкладке выберите "Platform -> Win32 Show directories for: Include files" и добавьте путь к заголовочным файлам, повторите манипуляции для "Executable files", "Library files" и "Reference files", например:
- Executable files - D:\Program\MicrosoftSDKs\Win\v6.1\bin
- Include files - D:\Program\MicrosoftSDKs\Win\v6.1\Include
- Library files - D:\Program\MicrosoftSDKs\Win\v6.1\Lib
- Reference files - D:\Program\MicrosoftSDKs\Win\v6.1\Help\1033
Для платформ IA64 и x64 в каталоге D:\Program\MicrosoftSDKs\Win\v6.1\Lib есть одноимённые каталоги и путь соответственно нужно указывать к ним если у вас платформа IA64 или x64! Официальные рекомендации ПО настройке компилятора Visual C++ 2005 Express Edition
от Visual Studio 2005
в Windows XP
мы выполнили.
Теперь относительно установки Windows SDK for Windows Server 2008 and .NET Framework 3.5
, а вернее дополнительной настройки окружения при построении из командной строки. В каталоге D:\Program\MicrosoftSDKs\Win\v6.1\ есть файл SetEnv.Cmd для установки переменных окруженияLIB, INCLUDE, CPU, APPVERпри построении из командной строки (например: http://msdn.microsoft.com/ru-ru/library/f2ccy3wt%28v=vs.90%29.aspx) - запускаем, устанавливаем: SetEnv.Cmd /x86 /xp /Release.
Однако, результатом запуска "SetEnv.Cmd /x86 /xp /Release" может быть сообщение "The x86 compilers are not currently installed. Please go to Add/Remove Programs to update your installation. Setting SDK environment relative to D:\Program\MicrosoftSDKs\Win\v6.1. Targeting Windows XP x86 RELEASE".
Это происходит потому, что пакетный файл SetEnv.Cmd в процессе своего выполнения ПО умолчанию пытается искать %VCTools%\bin\cl.exe отталкиваясь от предустановленной в SetEnv.Cmd переменной %VCRoot%
ELSE ( SET RegKeyPath=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VC7 SET VSRegKeyPath=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7 SET "VCRoot=%ProgramFiles%\Microsoft Visual Studio 9.0" SET "VSRoot=%ProgramFiles%\Microsoft Visual Studio 9.0\" )
Подсветив переменную %VCTools% мы увидим не верный путь поиска "С:\ProgramFiles\Microsoft Visual Studio 9.0bin\cl.exe" имхо в реальности азм есьм "С:\ProgramFiles\Microsoft Visual Studio 9.0\VC\bin\cl.exe".
Временами указанных выше манипуляций c SetEnv.Cmd /x86 /xp /Release бывает не достаточно для настройки окружения при построении из командной строки в силу кривого SetEnv.Cmdи в таких случаях в процессе компиляции мы можем получать ошибки вроде "Cannot include "winsock2.h""!
Если это происходит, тогда нам или нужно отрихтовать SetEnv.Cmd:
:: стр. 123, 128 SET "VCRoot=%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\" :: стр. 133 SET "VCRoot=%ProgramFiles%\Microsoft Visual Studio 9.0\VC\"
Или же следует дополнительно и в рукопашную создать СИСТЕМНЫЕ переменные имена которых находятся в SetEnv.Cmd после метки ":Set_XPx86" (SET Windows XP x86 specific variables)LIB, INCLUDE, CPU, APPVER.
Системные переменные LIB и INCLUDE формируются в SetEnv.Cmd из переменных:
SET MSSdk=D:\Program\MicrosoftSDKs\Win\v6.1 Set SdkTools=%MSSdk%\Bin Set OSLibraries=%MSSdk%\Lib Set OSIncludes=%MSSdk%\Include;%MSSdk%\Include\gl VCLibraries=%VCRoot%Lib C:\Program Files\Microsoft Visual Studio 9.0\VC\Lib VCIncludes=%VCRoot%Include C:\Program Files\Microsoft Visual Studio 9.0\VC\include Lib=%VCLibraries%;%OSLibraries%; Include=%VCIncludes%;%OSIncludes%;
С учётом багов формирования в SetEnv.Cmd рабочих переменных %VCTools% и %VCRoot% соответственно, мы должны в ручную установить СИСТЕМНЫЕ переменные LIB, INCLUDE, CPU, APPVER с такими значениями:
- LIB - C:\Program Files\Microsoft Visual Studio 9.0\VC\Lib;D:\Program\MicrosoftSDKs\Win\v6.1\Lib
- INCLUDE - C:\Program Files\Microsoft Visual Studio 9.0\VC\include; D:\Program\MicrosoftSDKs\Win\v6.1\Include; D:\Program\MicrosoftSDKs\Win\v6.1\Include\gl
- CPU - i386
- APPVER - 5.01
СИСТЕМНУЮ переменную CPU очевидно следует добавить в обязательном порядке, так как её значение с большей долей вероятности будет использоваться при компиляции, а добавление переменной APPVER вероятно может быть опционально.
Дальше мы должны, да просто обязаны, убедится в том, что СИСТЕМНАЯ переменная Path содержит значения переменных "%VCTools%;%VSTools%;%SdkTools%;%FxTools%;" формирующихся в SetEnv.Cmd:
SET MSSdk=D:\Program\MicrosoftSDKs\Win\v6.1 Set SdkTools=%MSSdk%\Bin .......... Set "VCTools=%VCRoot%Bin" С:\ProgramFiles\Microsoft Visual Studio 9.0\VC\bin Set "VSTools=%VCRoot%vcpackages;%VSRoot%Common7\IDE" C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages; C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE SET "FxTools=%windir%\Microsoft.NET\Framework\v3.5; %windir%\Microsoft.NET\Framework\v2.0.50727" SET Path=%VCTools%;%VSTools%;%SdkTools%;%FxTools%;!Path!
В нашем случае в переменную Path мы должны вручную добавить следующие пути: С:\ProgramFiles\Microsoft Visual Studio 9.0\VC\bin; C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages; C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE; D:\Program\MicrosoftSDKs\Win\v6.1\Bin; C:\WINDOWS\Microsoft.NET\Framework\v3.5; C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
Мы добавили вручную те пути которые не смог добавить SetEnv.Cmd, а также следовало бы убедится в наличии в переменной Path следующих путей: D:\Program\Visual_Studio\Common7\Tools; D:\Program\Visual_Studio\SDK\v2.0\bin;
В вашем случае они конечно могут отличатся в зависимости от каталога установки Visual Studio 2005. Просмотреть полный список установленных переменных можно выполнив "set > set.txt" или просто set.
Если устанавливали DirectX SDK, то так же пропишем в переменную Path %DXSDK_DIR%\Utilities\Bin\x86.
Обычно это всё настройки Visual C++ 2005 Express Edition
которые требуются для нормальной компиляции программ на C++ в Visual Studio 2005, однако в некоторых случаях, например при отладке программ, нам потребуется Windows Symbol Packages, после загрузки и установки которого нужно будет создать СИСТЕМНУЮ переменную _NT_SYMBOL_PATH в которой прописать полный путь к Windows Symbol Packages (например: C:\WinDBG\Symbols\XP) для вашей платформы.
Для установки постоянных пользовательских и системных переменных из cmd (.bat, .cmd) можно использовать программу SETENV.EXE или использовать комманду REG ADD для добавления переменной в реестр.
ВНИМАНИЕ! Изменение системных переменных записывается в системный реестр, и для их применения обычно требуется перезагрузка компьютера. Не следует добавлять папки в системную переменную Path, если они не защищены надежным образом, так как злоумышленник может поместить в эту папку «троянского коня» или другую вредоносную программу. Выполнение такой программы в Windows может вызвать угрозу для важных данных, потерю данных или частичный или полный сбой системы.
С недавних пор Microsoft Visual Studio 2005, бывший ранее доступный для загрузки ПО ссылке http://www.microsoft.com/rus/express/2005/download/default.aspx, уже не доступен для загрузки, что от большей части связано с взломом его активации, а так же активным продвижением новых продуктов Microsoft Visual Studio 2010, Microsoft Visual Studio 2012 и т.д..
Активное продвижение новых продуктов Microsoft и прочего ПО более требовательного к ресурсам на прямую взаимосвязано с продвижением нового железа, что имеет явные черты заговора направленного на повышение прибыли участников сего процесса.
Но, не смотря на заговор между производителями ПО и железа Microsoft Visual Studio 2005 всё ещё можно отыскать для загрузки во всемирной сети Интернет.
- Установка переменных среды
- Добавление и изменение значений переменных среды
- Как управлять переменными среды в Microsoft Windows XP
- Общие сведения о командной оболочке
- Visual Studio 2005 (MSDN)
- The Visual Studio 2005 Software Development Kit (SDK)
- Установка переменных пути и среды при построении из командной строки (Visual Studio 2008)