Как установить lfreetype с помощью wine?

Я использую Ubuntu 11.10 64bit и пытаюсь установить Wine 1.5, используя этот метод:

Установите Wine в Ubuntu:

sudo apt-get install libfreetype6-dev gobject* libxrender-dev libfontconfig-dev pthread* libpthread-stubs0-dev xext* libsm-dev

и скопируйте следующие команды в Терминале: [ 116]

wget http://prdownloads.sourceforge.net/wine/wine-1.5.0.tar.bz2
tar -xjvf wine-1.5.0.tar.bz2
cd wine-1.5.0

Установите несколько пакетов:

sudo apt-get install flex bison qt3-dev-tools qt4-qmake
./configure
cd tools
./wineinstall

Все идет хорошо, но в конце я получаю это сообщение об ошибке:

checking for -lfreetype... not found
configure: error: FreeType 32-bit development files not found. Fonts will not be built. 
Use the --without-freetype option if you really want this.

Кто-нибудь знает, как установить lfreetype?

6
задан 5 October 2012 в 05:29

10 ответов

Перейдите в каталог, в который вы распаковали файлы для вина.

В терминале выполните эту команду:

./configure --without-freetype

Затем, после того, как все будет сделано, выполните:

make
0
ответ дан 5 October 2012 в 05:29

Верните следующий патч из вашего исходного дерева и скомпилируйте снова:

From a37f74f5adec8cd3f924fc96e083a66219086091 Mon Sep 17 00:00:00 2001
From: Nicolas Le Cam <niko.lecam@gmail.com>
Date: Sat, 7 Apr 2012 22:46:58 +0200
Subject: [PATCH] configure.ac: Prefer pkg-config over freetype-config.

---
 configure    | 16 +++++++++++-----
 configure.ac | 14 ++++++++++----
 2 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/configure b/configure
index 3e6e777..5b0dcba 100755
--- a/configure
+++ b/configure
@@ -10262,7 +10262,12 @@ fi

 if test "x$with_freetype" != "xno"
 then
-    for ac_prog in freetype-config freetype2-config
+    if test "$PKG_CONFIG" != "false"
+    then
+        ac_freetype_incl="`$PKG_CONFIG --cflags freetype2 2>/dev/null`"
+        ac_freetype_libs="`$PKG_CONFIG --libs freetype2 2>/dev/null`"
+    else
+        for ac_prog in freetype-config freetype2-config
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -10305,10 +10310,11 @@ fi
 done
 test -n "$ft_devel" || ft_devel="no"

-    if test "$ft_devel" != "no"
-    then
-        ac_freetype_incl=`$ft_devel --cflags`
-        ac_freetype_libs=`$ft_devel --libs`
+        if test "$ft_devel" != "no"
+        then
+            ac_freetype_incl=`$ft_devel --cflags`
+            ac_freetype_libs=`$ft_devel --libs`
+        fi
     fi
     ac_freetype_libs=${ac_freetype_libs:-"-lfreetype"}
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lfreetype" >&5
diff --git a/configure.ac b/configure.ac
index 667d725..a57f133 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1384,11 +1384,17 @@ WINE_NOTICE_WITH(cms,[test "$ac_cv_lib_lcms_cmsOpenProfileFromFile" != "yes"],
 dnl **** Check for FreeType 2 ****
 if test "x$with_freetype" != "xno"
 then
-    AC_CHECK_PROGS(ft_devel,[freetype-config freetype2-config],no)
-    if test "$ft_devel" != "no"
+    if test "$PKG_CONFIG" != "false"
     then
-        ac_freetype_incl=`$ft_devel --cflags`
-        ac_freetype_libs=`$ft_devel --libs`
+        ac_freetype_incl="`$PKG_CONFIG --cflags freetype2 2>/dev/null`"
+        ac_freetype_libs="`$PKG_CONFIG --libs freetype2 2>/dev/null`"
+    else
+        AC_CHECK_PROGS(ft_devel,[freetype-config freetype2-config],no)
+        if test "$ft_devel" != "no"
+        then
+            ac_freetype_incl=`$ft_devel --cflags`
+            ac_freetype_libs=`$ft_devel --libs`
+        fi
     fi
     ac_freetype_libs=${ac_freetype_libs:-"-lfreetype"}
     WINE_CHECK_SONAME(freetype,FT_Init_FreeType,[ft_lib=yes],[ft_lib=no],[$ac_freetype_libs])
-- 
2.1.4
0
ответ дан 5 October 2012 в 05:29

Он жалуется на то, что пропустил 32-разрядную версию пакета freetype.
Вы можете попробовать установить его с помощью sudo apt-get install libfreetype6-dev:i386 и посмотреть, исчезло ли предупреждение.

0
ответ дан 5 October 2012 в 05:29

Linux

Проблема состоит в том, что pkg-конфигурация Ubuntu не видит Ваш FreeType 32-разрядные файлы для разработчика.

  • Чтобы проверить, что дело обстоит так, можно проверить его следующей командой:

    pkg-config --cflags --libs freetype2
    

    У Вас должна быть ошибка, та pkg-конфигурация не может найти этот пакет.

    Примечание: Если у Вас нет pkg-конфигурации, установите ее через sudo apt-get install pkg-config

  • Затем проверьте, был ли Ваш freetype установлен правильно и где.

    $ dpkg -l | grep freetype        
    $ sudo updatedb && locate freetype2
    
  • Попытайтесь переустановить его на всякий случай:

    sudo apt-get update && sudo apt-get install libfreetype6-dev --reinstall
    
  • Если все еще не работает, найдите свой файл ПК в Вашем freetype пакете:

    dpkg -L libfreetype6 libfreetype6-dev | grep pc$
    

    или где-либо еще:

    sudo updatedb && locate freetype2.pc
    

    и удостоверьтесь, что этот файл соединен в Вашем pkgconfig каталоге (locate pkgconfig):

    ln -s YOUR_FOUND_PATH/freetype2.pc /usr/lib/x86_64-linux-gnu/pkgconfig/freetype2.pc
    

    Примечание: Замените YOUR_FOUND_PATH своим полным путем freetype2.pc файла.


  • Если Вы не можете найти свой файл ПК, создайте одну внутреннюю часть Ваш pkc_config dir (как freetype2.pc):

    prefix=/usr
    exec_prefix=${prefix}
    libdir=${prefix}/lib/x86_64-linux-gnu
    includedir=${prefix}/include
    
    Name: FreeType 2
    Description: A free, high-quality, and portable font engine.
    Version: 14.0.8
    Requires:
    Libs: -L${libdir} -lfreetype
    Libs.private: -lz  
    Cflags: -I${includedir}/freetype2 -I${includedir}
    
  • Если Ваша проблема все еще не решена (или она связана с чем-то еще), отладьте свои./настраиваем сценариев в оболочке:

    $ sh -x ./configure
    

    И найдите место своей проблемы (например, которые pkg-конфигурируются, команда выполняется для проверки существования определенного пакета).

Mac

Если у Вас есть подобная проблема на Mac, и Вы нашли эту тему, используйте домашнее пиво для установки freetype пакета:

sudo brew install freetype

Если у Вас все еще есть проблема, проверьте эту ошибку: https://github.com/mxcl/homebrew/issues/14550

1
ответ дан 5 October 2012 в 05:29

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

0
ответ дан 5 October 2012 в 05:29
PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig ./configure

Попробуйте настроить с этой линией. Возможно, вы пытаетесь скомпилировать в 64-битной системе 32-битное вино, и вы обнаружите, что configure иногда проверяет неверные места для библиотек.

0
ответ дан 5 October 2012 в 05:29

Просто установите по умолчанию libfreetype6-dev и libfreetype6: i386 , затем создайте ссылку на библиотеку.

sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so.6 /usr/lib/i386-linux-gnu/libfreetype.so

По неизвестной причине на одном из моих компьютеров у меня была проблема, когда конфигурация сообщила об ошибке в libfreetype6 , но на самом деле это была libz и libpng . В любом случае, вы можете решить проблему таким же образом

sudo apt-get install libpng12-0-dev libpng12-0:i386 zlib1g-dev zlib1g:i386
sudo ln -s /usr/lib/i386-linux-gnu/libpng12.so.0 /usr/lib/i386-linux-gnu/libpng12.so
sudo ln -s /usr/lib/i386-linux-gnu/libz.so.1.2.8 /usr/lib/i386-linux-gnu/libz.so

Общий способ для решения одинаковых проблем: открыть файл config.log, перейти к концу и выполнить поиск в верхнем Направить слово error. Вы найдете код, который использовался для проверки наличия библиотеки или заголовков. Просто скопируйте функцию main с помощью , включая , в отдельный файл; Далее ищите над кодом команду, которая использовалась для компиляции. Это будет выглядеть примерно так:

gcc -m32 -o conftest -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0   conftest.c  >&5

Удалите часть >&5, запишите вместо conftest.c имя вашего тестового файла (в который вы только что скопировали код) и попробуйте скомпилировать с помощью этой команды - вы увидите гораздо более полезные сообщения об ошибках. Это в основном минимальный тестовый пример, и как только он решен, проблема также решена.

Советы по возможным ошибкам:

  • Отсутствуют заголовки - просто зайдите на packages.ubuntu.com и найдите имя заголовка, чтобы найти пакет, который вы пропустили [ 1120]
  • Отсутствующие библиотеки - установите библиотеку с постфиксом -dev, затем, если он не работал, с :i386. Если это не сработало снова, как в случае с libfreetype , то воспользуйтесь решением, которое написано выше - то есть создайте символические ссылки вручную.
0
ответ дан 5 October 2012 в 05:29
ln -s /usr/include/freetype2/freetype /usr/include
0
ответ дан 5 October 2012 в 05:29

Чтобы настроить wine на 64-битной машине, вы должны сделать:

./configure --enable-win64

Если вы действительно хотите скомпилировать 32-битную версию Wine на 64-битной машине, то я думаю, что самый простой способ использовать контейнер lxc, так как Ubuntu усложняет сборку 32-битного вина, поскольку 64-битная система не поставляется с полным набором 32-битных библиотек разработки (см. Ошибка № 990982 ). 1137]

Итак, основной подход для компиляции как 32-битного, так и 64-битного вина:

  1. Сборка 64-битного вина
  2. Сборка 32-битных инструментов в lxc
  3. Построить 32-битное вино в lxc, ссылаясь на 64-битное вино и 32-битные инструменты 1. встроенные в предыдущие шаги
  4. Установить 32-битное вино
  5. Установить 64- немного вина

На странице Создание Biarch (Shared WoW64) Wine На Ubuntu мы можем прочитать следующие инструкции:

  1. Установить 64-битные предпосылки:

    sudo apt-get update
    sudo apt-get build-dep wine
    
  2. Сборка 64-битного вина:

    mkdir $HOME/wine64
    cd $HOME/wine64
    ../wine-git/configure --enable-win64
    make -j4
    
  3. Установить lxc:

    sudo apt-get install lxc
    
  4. Создайте 32-битный контейнер с именем «my32bitbox», используя шаблон Ubuntu, и привяжите свой домашний каталог к ​​каталогу / home в контейнере:

    sudo lxc-create -t ubuntu -n my32bitbox -- --bindhome $LOGNAME -a i386
    
  5. [ 1144] Скопируйте конфигурацию apt с хоста в контейнер lxc:

    sudo cp -R /etc/apt /var/lib/lxc/my32bitbox/rootfs/etc
    
  6. Запустите контейнер; при появлении запроса на вход в консоль войдите под своим именем пользователя и паролем.

    sudo lxc-start -n my32bitbox
    
  7. Теперь вы внутри контейнера, в вашем реальном домашнем каталоге. Если вы не находитесь в контейнере (у вас нет приглашения username @ my32bitbox), откройте новый терминал и:

    sudo lxc-attach -n my32bitbox
    login yourusername+password
    
  8. Теперь вы находитесь в контейнере. Сделайте сборку Wine из дерева как обычно, просто чтобы получить инструменты. Сначала вам нужно будет установить все необходимые компоненты. Например:

    sudo apt-get update
    sudo apt-get install python-software-properties git-core
    sudo apt-get build-dep wine
    mkdir $HOME/wine32-tools
    cd $HOME/wine32-tools
    ~/wine-git/configure
    make -j4
    
  9. Все еще внутри контейнера, сделайте это снова, на этот раз, указывая на 64-битную сборку для данных и 32-битную сборку инструментов для инструментов: [ 1148]

    mkdir $HOME/wine32
    cd $HOME/wine32
    ~/wine-git/configure --with-wine64=$HOME/wine64 --with-wine-tools=$HOME/wine32-tools
    make -j4
    
  10. Все еще внутри контейнера, установите 32-битное вино, чтобы заставить последний маленький кусочек здания:

    cd $HOME/wine32
    sudo make install
    
  11. Пока все еще в контейнере, закройте его:

    sudo shutdown -h now
    

    Это вернет вас обратно в вашу реальную машину. Далее вам нужно удалить все существующие пакеты Wine. Вы можете сделать это из командной строки, но это, вероятно, проще с aptitude или одним из инструментов управления пакетами GUI. Вам понадобится wine-mono, wine-gecko и, возможно, winetricks для вашей скомпилированной версии вина. Однако эти пакеты могут зависеть от существующей установки вина, что может заставить вас удалить их.

  12. Установите только что созданное Wine на вашу реальную машину:

    cd $HOME/wine32
    sudo make install
    cd $HOME/wine64
    sudo make install
    

    Предупреждение. Когда вы устанавливаете локально собранную версию Wine, система управления пакетами не будет знать, что она существует, поскольку приходят из пакета. Таким образом, можно позже нарушить его зависимости или установить конфликтующую версию wine без предупреждения от инструментов управления пакетами. Вы можете предотвратить это, создав пакет или заблокировав конфликтующие пакеты с помощью apt-pinning, установив «Pin-Priority: -1» для пакетов.

  13. Затем установите Mono, Gecko и, возможно, winetricks, если вам пришлось удалить их пакеты из-за зависимости от конфликтующего пакета Wine.

Примечание. Многие из вышеперечисленных команд требуют привилегий root. У вашей учетной записи пользователя должен быть доступ к root через sudo или вам нужно переключиться на учетную запись пользователя.

0
ответ дан 5 October 2012 в 05:29

Я установил freetype из источника http://sourceforge.net/projects/freetype/files/ с помощью

./configure --without-png 
make 
sudo make install
0
ответ дан 5 October 2012 в 05:29

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

Похожие вопросы: