Как скомпилировать 64-битную версию vim в Windows с помощью MinGW-64?

Я попытался скомпилировать vim 64-бит на Windows. Но я не знаю, как использовать MinGW-64. В 32-битной версии есть mingw-32-make, который я мог бы использовать для сборки. Но я не нашел никакой программы make в 64-битном MinGW. Не могли бы вы рассказать мне, как использовать mingw-64 или любой учебник, которому я мог бы следовать?

Спасибо.


person Nick    schedule 07.10.2013    source источник


Ответы (3)


Неважно, из какого источника исходит make программа, она просто должна уметь выполнять Makefile. Чтобы скомпилировать vim с MinGW с помощью специального компилятора и Make_ming.mak makefile, я использовал следующее:

  1. Экспортируйте переменную среды CC, установленную в соответствующий компилятор (в моем случае это был 32-битный файл с именем i686-pc-mingw32-gcc).
  2. Экспортировать переменную среды LD, установленную для соответствующего компоновщика (в моем случае это было похоже, но с суффиксом -ld вместо -gcc). Убедитесь, что они находятся на $PATH: я не уверен, какой вид экранирования вам следует сделать, чтобы заставить makefile работать, поэтому просто избегайте необходимости экранирования.
  3. Экспортируйте переменную среды prefix, указывающую на каталог, в котором находится mingw (в моем случае это было /usr/i686-mingw32: я выполняю кросс-компиляцию).
  4. Для переменной среды экспорта vim_cv_toupper_broken задано значение yes. Я не уверен, почему я сделал это.
  5. Наконец запустите make:

    cd {path/to/vim/repository}/src
    make -f Make_ming.mak FEATURES=HUGE CROSS_COMPILE=i686-pc-mingw32- OPTIMIZE=SPEED VIMRUNTIMEDIR="C:\\vim73\\runtime" CROSS=yes ARCH=i686
    

    . Вам определенно не нужны параметры CROSS_COMPILE и CROSS, а ARCH, вероятно, следует опустить (или равно x86_64). VIMRUNTIMEDIR должен указывать на место, куда вы планируете установить vim. Хотя насчет побега не уверен.

Экспорт переменных среды, вероятно, следует выполнять с помощью

set var=value

, e.g.

set CC=x86_64-w64-mingw32-gcc

(используйте фактическое имя исполняемого файла). Если это не сработает, попробуйте переместить их в командную строку make:

make -f Make_ming.mak CC=x86_64-w64-mingw32-gcc LD=… …

.

И переменные для python (также должны присутствовать в командной строке):

PYTHON="P:\\ath\\to\\directory\\with\\python" PYTHONINC="P:\\ath\\to\\directory\\with\\python\\header\\files" PYTHON_VER=27 PYTHON_VER_LONG=2.7.5

. (Если используется установщик python msi PYTHONINC, это %PYTHON%\\include. На 90% это какой-то каталог, компонент конечного пути которого равен include. Должен содержать не менее Python.h файла.)

person ZyX    schedule 07.10.2013
comment
Большое спасибо за ваше время и помощь. Я не знаком с процессом компиляции. Попробовал еще раз: 1.Установил TDM64-gcc. 2. Запустите ming32-make -f Make_ming.mak. Я получил сообщение об ошибке: выбранный вами ЦП не поддерживает набор инструкций X86-64. Думаю, мне не следует использовать ming32-make. Но вы уже указываете, что не имеет значения, из какого источника исходит make программа. Я действительно не знаю, что делать дальше. - person Nick; 08.10.2013
comment
@Nick Make не имеет значения, за исключением некоторых странных случаев с несовместимыми реализациями make или make-файлами, использующими нестандартные функции. Но только make -f Make_ming.mak совершенно недостаточно. Вы должны установить переменные либо в среде, либо в командной строке, как я описал. Большинство из них я устанавливаю в командной строке и не могу сказать, будут ли работать эти переменные из среды. Похоже, если вы не установили правильный CC. Может быть, вам нужно установить некоторые CFLAGS, я не уверен. Только с make -f Make_ming.mak вы наверняка не получите поддержку Python. - person ZyX; 08.10.2013
comment
Спасибо, ЗиХ. Возможно, не стоит компилировать традиционное программное обеспечение Linux для Windows. Может быть, мне не следует использовать Windows так, как Linux. Эта проблема не решена. Но я считаю, что если следовать вашей инструкции шаг за шагом, это может быть сделано. Я планирую установить систему с двойной загрузкой Windows/Linux. Перенесите работу по программированию на Linux, а работу, связанную с Photoshop, — на Windows. Я надеюсь, что это будет практический подход. - person Nick; 10.10.2013

Я только что скомпилировал VIM на MinGW и сделал суть об этом. Я тоже пробовал x86-64 (ищите его), и с /etc/fstab, измененным на 64, он в основном работал, просто все мои интерпретаторы были 32, и на этом он остановился.

person Roland Puntaier    schedule 19.01.2014
comment
Спасибо! Сейчас я использую редактор Sublime Text в Windows. Вы тоже можете попробовать. - person Nick; 21.01.2014

Попробуйте установить

ARCH=x86-64 in vim74/src/Make_ming.mak

и добавь опцию CC=x86_64-w64-mingw32-gcc, может пригодится.

person wakawaka    schedule 15.02.2014