Как собрать DParser for Python с помощью Visual C++ 2005?
Aug 28, 2007 · CommentsИнструментыWin32.Utf8
Существует два способа собрать DParser for Python под Windows:
-
Легкий – воспользоваться GCC из MinGW и немного пошаманить;
-
Интересный – попытаться сделать тоже самое с помощью Visual C++ 2005.
Естественно, что я выбрал второй вариант. :-)
(На самом деле причина довольно прозаична – не хотелось собирать один проект двумя разными компиляторами).
Исходные данные:
-
Python v2.5.1. Я пробовал x86 и x64 варианты. Версия для Itanium должна работать точно так же;
-
Boost.Build v2. Любая другая система сборки проектов тоже подойдёт;
-
Visual C++ 2005.
Последовательность действий:
-
Распаковываем DParser куда-нибудь, скажем “C:\temp\D”.
-
Применяем патч, который в добавляет недостающие (из-за отсутствующих заголовков) объявления и правит кое-где код.
pushd C:\\temp
patch -Np1 -d D < dparser-1.15.diff
Кроме правки кода, патч добавляет в несколько новых файлов:
* "Jamfile.v2" и "Jamroot" – скрипты для сборки DParser с помошью Boost.Build v2;
* "python\setup_win32.py" – Windows версия скрипта для сборки DParser for Python;
* "python\setup_win32.cmd" – обёртка для setup_win32.py, нужная главным образом для внедрения манифеста в собранную .DLL.
- Компилируем DParser:
cd D
bjam free
Для amd64:
cd D
bjam free architecture=x86 address-model=64
Для Itanium:
cd D
bjam free architecture=ia64
При этом собранные библиотеки будут скопированы в “C:\temp\D\dist”.
-
Запускаем “Visual Studio 2005 Command Prompt” (либо “Visual Studio 2005 x64 Cross Tools Command Prompt”, либо “Visual Studio 2005 Itanium Cross Tools Command Prompt”) под учётной записью администратора (под любым пользователем, имеющим доступ на запись в каталог, где установлен Python).
-
Если вы компилируете 32-х битную версию, то дополнительно следует поправить проверку на совместимость версий компилятора в “C:\Python25\Lib\distutils\msvccompiler.py”. Для этого нужно применить ещё один патч:
pushd C:\\Python25\\Lib\\distutils
patch msvccompiler.py msvccompiler.py.diff
popd
Этот шаг не обязателен, если вы собираете версию для amd64 или ia64.
- Cобираем и устанавливаем DParser for Python:
cd python
setup_win32.cmd
- И наконец, проверяем что у нас получилось:
python
import dparser
print dparser
Готово.