Кто-нибудь успешно скомпилировал freetype с помощью MinGW / MSYS?

Я безуспешно пытаюсь скомпилировать freetype с помощью MinGW / MSYS

Вот что я делаю:

Из cmd.exe я переключаюсь на MSYS :

C:\temp\freetype-2.3.5-1\src\freetype\2.3.5\freetype-2.3.5>bash

И затем вызываю сценарий configure

bash-3.1$ ./configure

FreeType build system -- automatic system detection

The following settings are used:

  platform                    unix
  compiler                    cc
  configuration directory     ./builds/unix
  configuration rules         ./builds/unix/unix.mk

If this does not correspond to your system or settings please remove the file
`config.mk' from this directory then read the INSTALL file for help.

Otherwise, simply type `make' again to build the library,
or `make refdoc' to build the API reference (the latter needs python).

cd builds/unix; ./configure
checking build system type... i686-pc-mingw32

[------ Deleted some 121 lines because they seem irrelevant for the problem ------]

config.status: creating ftconfig.h
make: Nothing to be done for `unix'.

После настройки freetype я хочу использовать make для компиляции исходных текстов:

bash-3.1$ make
/bin/sh: cygpath: command not found
config.mk:36: /builds/freetype.mk: No such file or directory
config.mk:57: /builds/unix/install.mk: No such file or directory
builds/toplevel.mk:158: /builds/modules.mk: No such file or directory
make: *** No rule to make target `/builds/modules.mk'.  Stop.

Проблема, похоже, в cygpath , что странно, потому что я не установил cygwin.

Поскольку инструкции компиляции требуют gnu make , я проверил следующее:

bash-3.1$ make -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-msys

Что я делаю не так?

Правка : Также имеется Makefile.mingw в каталоге. Попытка запустить процесс компиляции с помощью make -f Makefile.mingw также не завершается, возвращая сообщение ¨make: *** Нет правила для создания целевого файла MFSED, необходимого для всех '. Стоп. .

Обновление Хорошо, я провел детективное расследование по этому поводу, и похоже, что проблема точно , потому что я не установил CygWin. У меня такое предположение, потому что cygpath - это утилита CygWin ( См. Здесь ), которая преобразует пути unix в пути Windows и наоборот.

Итак, ¨найти. -type f -exec grep -l cygpath {} \; находит несколько мест, где используется cygpath :

  • ./ builds / unix / aclocal.m4
  • ./ builds / unix / configure
  • ./ builds / unix / unix-def.in
  • ./ builds / unix / unix-def.mk
  • ./ patches / freetype-2.3. 4.diff
  • ./ patches / freetype-2.3.5 / builds / unix / unix-def.mk
  • ./ patches / freetype-2.3.5.diff

, и я думаю, что мне придется измените что-нибудь в одном или нескольких из этих мест, чтобы исправить сборку. Верно? Я все еще надеюсь, что кто-нибудь, обладающий более глубокими знаниями обо всем процессе ./configure-build, сможет дать мне подсказку по этой проблеме.

Обновление II : из ответа rubenvb я решил, что могу попробовать ./ configure --build = i686-pc-mingw32 и , затем удалите строковое чтение

TOP_DIR := $(shell cd $(TOP_DIR); cygpath -m `pwd`)

в builds / unix / unix-def.mk и , затем измените строковое чтение

RCTOOL_COMPILE = RCTOOL

на

RCTOOL_COMPILE = $(RCTOOL)

в ./ builds / freetype.mk , а также копирование http://gnuwin32.sourceforge.net/rctool.sh.txt в c: \ mingw \ bin (так как были странные ошибки, потому что отсутствующего rctool.sh ) и , затем запустите процесс компиляции с помощью make .

Теперь, похоже, что компиляция исходных файлов (по крайней мере частично) наконец-то завершена, хотя я получил много предупреждений вроде

./src/base/ftcalc.c:75:3: warning: 'FT_RoundFix' redeclared without dllimport attribute: previous dllimport ignored

Но компоновщик не может связать файлы * .o поскольку существует много неопределенных ссылок, таких как

C:\temp\freetype-2.3.5-1\src\freetype\2.3.5\freetype-2.3.5/src/base/ftinit.c:89: undefined reference to `_imp__FT_Add_Module'

, я полагаю, что предупреждения компиляции не связаны с ошибками компоновщика.

Итак, что теперь?

9
задан René Nyffenegger 14 February 2011 в 22:40
поделиться