Подготовка Windows

by 1 contributor:

Эта страница описывает необходимые шаги, чтобы подготовить компьютер к построению версии Firefox и/или Thunderbird на Windows.

Системные требования

Построение программного обеспечения Mozilla может занять много времени,  даже на современном оборудовании. Минимальные системные требования, необходимое для разработки Mozilla:

  • По крайней мере, 3 Гб оперативной памяти для построения последней версии Firefox; Рекомендуется 4 Гб или более.
  • 20 ГБ свободного дискового пространства (для Visual Studio 2010 Express, SDK, MozillaBuild, исходного кода и свободного пространства, необходимого для компиляции.)
  • Рекомендуется Windows Vista или более поздняя версия, хотя можно построить на Windows XP. Windows 2000 и более ранние версии не поддерживаются.

Общие сведения

Процесс построения Mozilla требует много средств, которые не установлены на большинстве систем Windows. В дополнение к Visual Studio, вы должны установить MozillaBuild, который представляет собой пакет программного обеспечения, в том числе bash, GNU make, autoconf, Mercurial, и многое другое.

Исходный код Mozilla работает на Visual Studio 2010 (VC10) и Visual Studio 2012 (VC11) . Официальные выпуски продуктов Mozilla Foundation компилируются на VC10.

Подготовка к установке

Завершите каждый из этих шагов, в противном случае вы не сможете успешно построить Firefox и/или Thunderbird. Есть замечания к программным ресурсам ниже.

  1. Убедитесь, что у вас последняя версия системы с помощью Windows Update. (Для Windows XP необходимо как минимум Service Pack 2 и .NET Framework 2.0.).
  2. Если вы работаете с Windows 7 и хотите использовать Express-версии Visual Studio 2010, установите Windows 7 SDK.
  3. Установите June 2010 DirectX SDK (даже VS 2012 требует этого). (Если ранее был установлен Visual C++ 2010 года, вы можете столкнуться с ошибкой "S1023" во время установки. Для коррекции действий, см. известная проблема: DirectX SDK (июнь 2010 года) установка программы и S1023 ошибка на "Games for Windows и DirectX SDK" блоге.)
  4. Установите одно из этого: Visual Studio 2012 для Windows Desktop Pro  или  экспресс (бесплатный) или Visual Studio 2010 Pro  или  экспресс (бесплатно).
  5. Скачайте и запустите MozillaBuild пакет, содержащий дополнительные инструменты для сборки. Если у вас установлен cygwin, прочитайте запись в разделе советы. (После завершения работы MozillaBuild программа установки, если вы видите ошибку Windows которая, просит вас повторно установить с  "правильной настройки", выберите эту опцию, и после этого все должно быть хорошо.) Больше информации о MozillaBuild и ссылки на новые версии доступны на https://wiki.mozilla.org/MozillaBuild.
  6. Если вы намерены построить Firefox Windows 8 UI (ранее известный, как " метро"), посмотрите дополнительные сведения, расположенном в интеграция Windows 8 - здание на месте.

В некоторых случаях могут возникнуть следующие проблемы:

Если вы используете Visual Studio 2010:

  • Установка .NET Framework 4.5 при использовании Visual Studio 2010 RTM сборки. Установка Visual Studio 2010 SP1 исправляет эту проблему: см. Bug 772989 комментарии 15 и 17 и http://support.microsoft.com/kb/2757355 для получения дополнительной информации.
Если вы используете Visual Studio 2012:
  • При построении Thunderbird или SeaMonkey, вы должны установить заголовочные файлы с MAPI http://www.microsoft.com/en-us/download/details.aspx?id=12905 потому что MAPI заголовочные файлы не входят в комплект Visual Studio 2012 (Windows SDK 8.0). Вы должны скопировать файлы заголовков для Windows SDK включая каталог, таким образом, процесс построения найдете файлы, например, C:\Program Files (x86)\Windows Kits\8.0\Include\shared.
Если вы получаете сообщения об отсутствующих dll-файлов в процессе установки:
  • Вам нужно найти папку(и), содержащюю(ие) каждый отсутствующий dll и добавьте их в переменную среды PATH (в расширенных системных настройках).

Пожалуйста, Запомните, что Mozilla не будет строить, если некоторые из инструментов, установленных на путь, который содержит пробелы или другое недопустимые символы, такие как плюсы, кавычки, или метасимволы. Visual Studio tools являются исключением-они могут быть установлены в каталог, который содержит пробелы. Настоятельно рекомендуется принять параметры по умолчанию для всех путей установки.

Открытие построения командной строкой

После установки необходимых обновлений, запустите один из следующих пакетных файлов из каталога, в котором установлен MozillaBuild (c:\mozilla-build по умолчанию):

  • start-shell-msvc2010.bat (для Visual Studio 2010)
  • start-shell-msvc2012.bat (для Visual Studio 2012)
  • start-shell-msvc2013.bat (для Visual Studio 2013)
Даже если у вас 64-битная версия Windows, не следует пользоваться start-shell-msvcNNNN-x64.bat файлами (Если вы не знаете, что делаете).Эти файлы являются экспериментальными и не поддерживается. См. Build:MozillaBuild For x64 wiki page
Этот запуск MSYS / BASH prompt правильно настроен, чтобы построить одну из вышеупомянутых базы кода. Все последующие команды должны быть выполнены в этом окне командной строки. (Обратите внимание, что это же не то, что вы получаете с Windows CMD.EXE shell).
 

Это должно быть выполнено с правами администратора. Если у вас User Account Control (UAC) включен, он не может быть предоставлен автоматически. Кликните правой кнопкой мыши на .BAT файле и выберите "запуск от имени администратора".

Создание каталога для исходного кода

Note: Вы не сможете построить исходный код Firefox, если он нажодится в каталоге, название которого содержит пробелы (например, не используйте "Documents and Settings"). Вы можете выбрать любое другое место, например, новый каталог C:\mozilla-central.

Это хорошая идея, создать каталог для исходного кода:

cd /c; mkdir mozilla-source; cd mozilla-source

Теперь вы готовы получить исходники Firefox и построить его; продолжайте: Простой метод построения Firefox (Получить исходники).

Командная строка. Советы и предостережения

  • Для того, чтобы вставить в это окно, нужно щелкнуть правой кнопкой мыши на заголовке окна, наведите курсор на меню " Edit " и нажмите кнопку вставить. Вы также можете установить Quick Edit Mode " в меню " свойства " и щелкнуть правой кнопкой мыши в окне, чтобы вставить свой выбор.
  • Если у вас установлен cygwin, убедитесь, что MozillaBuild каталоги предстать перед каких-либо cygwin каталоги в пути поиска (использовать команду echo $PATH, чтобы увидеть вашем пути поиска).
  • В MSYS / BASH, c: диск выглядит как корневой каталог (/). Так что если вы хотите, изменить каталог c:\mydir в MSYS оболочки, вы должны использовать cd /c/mydir. Обратите внимание на UNIX-стиль косой черты (/), а не в Windows-стиле обратной косой черты (\).
  • MSYS корневой каталог находится в c:\mozilla-build\msys, если использовать по умолчанию каталог установки. Это плохая идея, построить что-нибудь в этом каталоге. Вместо этого, используйте что-то вроде /c/mydir.

Common problems, hints, and restrictions

  • Debugging Mozilla on Windows FAQ: Tips on how to debug Mozilla on Windows.
  • Note that in Windows you need to build with Administrator privileges. If you have User Account Control (UAC) turned on, it may not automatically grant that to you.
  • The build may fail if your PATH environment variable contains quotes ("). Quotes are not properly translated when passed down to MozillaBuild sub-shells. Quotes are usually not needed so they can be removed.
  • The build may fail if you have a PYTHON environment variable set. You will see an error almost immediately that says "The system cannot find the file specified". In a command shell, typing "SET PYTHON=" before running the Mozilla build tools in that same shell should fix this. Make sure that PYTHON is actually unset, rather than set to an empty value. In the command shell, "SET PYTHON" (without no equal sign or quotes) should respond: "Environment variable PYTHON is not defined".
  • The build may fail if you have cygwin installed. Make sure that the MozillaBuild directories (c:\mozilla-build and subdirectories) come before any cygwin directories in your PATH environment variable. If this does not help, remove the cygwin directories from PATH, or try building on a clean PC with no cygwin.
  • Building with versions of NSIS other than the version that comes with the latest supported version of MozillaBuild is not supported and will likely fail.
  • If you intend to distribute your build to others, you will need to set WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC80.CRT in your mozconfig to get the Microsoft CRT DLLs packaged along with the application.
  • The Microsoft Antimalware service can interfere with compilation, often manifesting as an error related to conftest.exe during build. To remedy this, add at least your object directory to the exclusion settings.
  • If you encounter an error that atlbase.h cannot be found and you have installed Visual Studio 10 Express together with the platform SDK, you may have to delete a registry entry so that guess-msvc.bat doesn't detect VC10 installed. The key is HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VC.
  • If you encounter an error like "second C linkage of overloaded function '_interlockedbittestandset' not allowed", it happens when intrin.h and windows.h are included together. Use a #define to redefine one instance of the function's name. See more on using intrin.h.
  • Parallel builds (-jN) do not work with GNU make on Windows. You need to use pymake instead.

Предупреждение: If you follow the below advice, your computer will not be protected against attacks that exploit this vulnerability. Make sure you take adequate precautions.

  • If you still get random crashes when running make, you may be encountering interference from Windows Security Updates that prevents proper operation of the Bash shell on some Windows systems. In this case, if you're on Windows XP, you will need to uninstall Windows XP Security Updates KB933729 and KB970238 using Add or Remove Programs from the Control Panel. The first of these Security Updates is also incorporated into Windows XP Service Pack 3 (KB936929), so if you have already installed SP3 you'll need to uninstall it and then make sure that Service Pack 2, including all Windows updates (EXCEPT KB933729, KB936929, and KB970238) get installed. To prevent these updates from being installed automatically, select "Notify me but don't automatically download or install them" in the Control Panel's "Automatic Updates" dialog. Then de-select them when any of these items appear in the list of recommended updates, and when asked, indicate that you don't want to be asked about these de-selected updates in the future.

Microsoft DirectX SDK

The June 2010 DirectX SDK (specifically) is required for building the ANGLE GLES-on-D3D9 renderer, which is required on Windows for WebGL rendering. (If you don't care about compatibility with official Firefox builds and want to avoid installing this large SDK, you can disable WebGL by building Mozilla with the --disable-webgl option.) As part of the DirectX SDK install, you must install the End-User Redistributable Packages; don't uncheck it in the installer. (At least prior to Win7+VS2012?)

(Note that other versions of the DirectX SDK on Microsoft's Developer Center that claim to have been released after June 2010 are actually older versions that are misdated, some of which will result in an error if you try and download them due to the installer files themselves having been removed from the MS servers. There will not be any further standalone DirectX SDKs released by MS, since DirectX has been transitioned from an independent distribution model to an integrated (into Windows and Visual Studio) model, and the DirectX SDK is now integrated into the Windows 8 SDK (which is bundled with Visual Studio as of VS2012) [ref]. The reason that we require the June SDK even on newer Win7+VS2012 systems is because ANGLE depends on D3DX9, but MS considers D3DX to have been obsoleted by newer technologies and therefore VS2012 doesn't include the d3dx9.h and d3dx9tex.h headers that are required to compile ANGLE. Any queries about this paragraph, talk to Jonathan Watt.)

Note: The DirectX SDK installer may display an "S1023" error during the final installation step. You may be able to simply ignore this error and continue with the Mozilla build process. If the Mozilla build system still cannot locate the DirectX SDK, see this Microsoft support page.

MozillaBuild

The MozillaBuild package contains the other software prerequisites necessary for building Mozilla. This includes the MSYS build environment, Mercurial, autoconf-2.13, CVS, Python, YASM, NSIS, and UPX, as well as optional but useful tools such as wget and emacs.

Download the current MozillaBuild package.

By default, the package installs to c:\mozilla-build. It is recommended to use the default path. Don't use a path that contains spaces. The installer does not modify the Windows registry. Note that some binaries may require Visual C++ Redistributable package to run.

Expectation setting: Note that the "UNIX-like" environment provided by MozillaBuild is only really useful for building and committing to the Mozilla source. Most command line tools you would expect in a modern Linux distribution are not present, and those tools that are provided can be as much as a decade or so old (especially those provided by MSYS). It's the old tools in particular that can cause problems, since they often don't behave as expected, are buggy, or don't support command line arguments that have been taken for granted for years. For example, copying a source tree using cp -rf src1 src2 does not work correctly because of an old version of cp (it gives "cp: will not create hard link" errors for some files). In short, MozillaBuild supports essential developer interactions with the Mozilla code, but beyond that don't be surprised if it trips you up in all sorts of exciting and unexpected ways.

The MozillaBuild package includes the "make" program that originated on the UNIX and Linux platforms. This version of make does not make use of Windows' multi-core architecture. pymake is a Python implementation of Make that uses Windows' multi-core architecture and thus significantly speeds up build time.

Return to the Build Documentation

Метки документа и участники

Contributors to this page: REP
Обновлялась последний раз: REP,