Сборка Mozilla NSPR с использованием MinGw на Windows без VC++

Мне нужно использовать spidermonkey для моего движка Perl Javascript. Для этого мне нужно собрать spidermonkey с поточно-ориентированными библиотеками. Итак, насколько я понимаю, мне нужно сначала собрать NSPR, а затем spidermonkey.

Итак, как я понял из следующей ссылки https://developer.mozilla.org/en/NSPR_build_instructions

Сначала я скачал сборку Mozilla и открыл Mingw. Я следовал приведенным инструкциям, таким как создание каталога target.debug и т. Д......

когда я делаю make, я получаю следующее сообщение об ошибке

make[3]: nsinstall: Command not found
make[3]: *** [export] Error 127
make[3]: Leaving directory `/c/target.debug/pr/include/md'
make[2]: *** [export] Error 2
make[2]: Leaving directory `/c/target.debug/pr/include'
make[1]: *** [export] Error 2
make[1]: Leaving directory `/c/target.debug/pr'
make: *** [export] Error 2

Похоже, nsinstall отсутствует.

Я не профессиональный программист на C/C++, поэтому ищу вашу помощь.

Мне нужно успешно построить spidermonkey на окне, используя Mingw.

Я попытался выполнить шаги, указанные в следующей ссылке: http://jargon.ca/spidermonkey/

но когда я запускаю js.exe, он жалуется на отсутствие файла libnspr4.dll.

Поэтому, пожалуйста, помогите мне, как я могу собрать nspr и spidermonkey в операционной системе Windows.

3 ответа

Решение

В Windows нет прямого пути. У вас есть два варианта сделать это. Либо следуйте инструкциям на:

  1. Компилирование Mozilla с MinGW
  2. Или выполните предварительные требования, указанные на странице предварительных требований Windows, и начните компиляцию.

Я лично не пробовал первый вариант, но для второго вам понадобится Microsoft Visual Studio для работы. Опять же, если вам нужен только NSPR 4, почему бы вам не извлечь эти файлы из директории установки Firefox? Я предполагаю, что DLL-файлы называются как nspr4.dll, plc4.dll и plds4.dll.

Вы можете получить копию nsinstall от Mozilla.

  • Скачайте moztools-static.zip и распакуйте его.
  • скопируйте moztools-static/moztools/bin/nsinstall.exe в /mingw/bin.

Вы можете построить nsinstall с Cygwin следующим образом:

mkdir cygwinbuild
../configure --host=i386-pc-linux-gnu
cd config
make nsinstall

Затем здание с Mingw (с --enable-win32-target=WIN95) почти удается. Я должен был исправить следующие вещи:

(1) pr / include / md / _win95.h

// these should be defined in winbase.h, but in my mingw
// they are not
#ifndef STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
  #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
#endif
#ifndef CRITICAL_SECTION_NO_DEBUG_INFO
  #define CRITICAL_SECTION_NO_DEBUG_INFO  0x01000000
#endif

(2) pr / include / pratom.h, строка 80

// my mingw cannot link InterlockedIncrement, probably there's a better
// option than turning this off
#if 0 && defined(_WIN32) && !defined(_WIN32_WCE) && \

(3) Если кто-то хочет запустить тесты, трюк из пункта 1 следует также применить к тестам присоединенного, чужого, тестового файла.

Некоторые тесты не работают с моей сборкой: cvar, gethost, op_2long, parent, reinit, selct_nm, socket, sockopt, writev. Остальное удачно.

Другие вопросы по тегам