如何使用wine安装lfreetype?

我正在使用Ubuntu 11.10 64bit并尝试使用此方法安装wine 1.5:

在Ubuntu上安装Wine:

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

并在终端中复制以下命令:

 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?

从源树中还原以下修补程序并再次编译:

 From a37f74f5adec8cd3f924fc96e083a66219086091 Mon Sep 17 00:00:00 2001 From: Nicolas Le Cam  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 

转到您已提取葡萄酒文件的目录。

在终端中,运行以下命令:

 ./configure --without-freetype 

完成后,运行:

 make 

它抱怨错过了32位开发包的freetype。
您可以尝试使用sudo apt-get install libfreetype6-dev:i386安装它,看看警告是否已经消失。

要在64位计算机上配置wine,您应该:

 ./configure --enable-win64 

如果你真的想在64位机器上编译32位wine,那么我认为最简单的方法就是使用lxc容器,因为Ubuntu很难构建32位wine,因为64位系统并没有带满一组32位开发库(参见: Bug#990982 )。

因此,编译32位和64位葡萄酒的基本方法是:

  1. 制造64位葡萄酒
  2. 在lxc中构建32位工具
  3. 在lxc中构建32位葡萄酒,指的是前面步骤中构建的64位葡萄酒和32位工具
  4. 安装32位葡萄酒
  5. 安装64位葡萄酒

在页面上构建Biarch(共享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. 使用Ubuntu模板创建一个名为“my32bitbox”的32位容器,并将您的主目录绑定到容器中的/ home目录:

     sudo lxc-create -t ubuntu -n my32bitbox -- --bindhome $LOGNAME -a i386 
  5. 将apt配置从主机复制到lxc容器:

     sudo cp -R /etc/apt /var/lib/lxc/my32bitbox/rootfs/etc 
  6. 启动容器; 在控制台登录提示符下,您可以使用您的用户名和密码登录。

     sudo lxc-start -n my32bitbox 
  7. 现在,您位于容器内,位于您的真实主目录中。 如果您不在容器中(您没有提示用户名@ 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位工具:

     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. 将新制作的葡萄酒安装到您的真机中:

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

    警告:当您安装本地构建的Wine版本时,程序包管理系统将不知道它存在,因为它不是来自程序包。 因此,可以在以后打破其依赖关系或安装冲突版本的葡萄酒,而无需来自包管理工具的警告。 您可以通过为程序包设置“Pin-Priority:-1”来创建程序包或通过apt-pinning阻止冲突程序包来防止这种情况。

  13. 接下来,如果由于依赖冲突的葡萄酒包而必须删除它们的包,则安装Mono,Gecko和任选的winetricks。

注意:上述许多命令都需要root权限。 您的用户帐户需要通过sudo访问root,或者您需要切换到用户帐户。

 PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig ./configure 

尝试使用该行进行配置。 可能是你试图在64位系统上编译一个32位的葡萄酒,你会发现配置有时会在错误的位置检查libs。

Linux的

问题是Ubuntu pkg-config没有看到你的FreeType 32位开发文件。

  • 要validation是否是这种情况,可以通过以下命令进行检查:

     pkg-config --cflags --libs freetype2 

    你应该有错误,pkg-config找不到这个包。

    注意:如果您没有pkg-config,请通过sudo apt-get install pkg-config

  • 然后,请validation您的freetype是否正确安装在哪里。

     $ dpkg -l | grep freetype $ sudo updatedb && locate freetype2 
  • 尝试重新安装它,以防万一:

     sudo apt-get update && sudo apt-get install libfreetype6-dev --reinstall 
  • 如果仍然无效,请在您的freetype包中找到您的pc文件:

     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文件的完整路径。


  • 如果找不到您的pc文件,请在您的pkc_config目录中创建一个(如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} 
  • 如果您的问题仍未解决(或与其他问题有关),请在shell中调试./configure脚本:

     $ sh -x ./configure 

    并找到问题的位置(例如,执行哪个pkg-config命令以validation特定包的存在)。

苹果电脑

如果您在Mac上遇到类似问题并且发现了此主题,请使用自制软件来安装您的freetype软件包:

 sudo brew install freetype 

如果您仍有问题,请查看此错误: https : //github.com/mxcl/homebrew/issues/14550

只需安装默认的libfreetype6-devlibfreetype6:i386 ,然后为该库创建一个链接。

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

在我的一台电脑中出于未知原因,当配置告诉libfreetype6中的错误时,我遇到了问题,但它实际上是libzlibpng 。 无论哪种方式,您都可以以同样的方式解决问题

 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 。 您将找到用于测试库或标头存在的代码。 只需将带有includesmain函数复制到一个单独的文件中; 接下来在代码上方寻找用于编译的命令。 它看起来像

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

删除>&5部分,写入而不是测试文件的conftest.c名称(您刚刚复制了代码) ,并尝试使用此命令进行编译 – 您将看到更有用的错误消息。 这基本上是最小的测试用例,一旦解决,问题也解决了。

可能出错的提示:

  • 缺少标题 – 只需转到packages.ubuntu.com ,然后搜索标题名称以查找您缺少的包
  • 缺少库 – 使用-dev postfix安装库,如果不起作用,则使用:i386 。 如果它不像libfreetype那样再次工作,那么请使用上面编写的解决方案 – 即手工制作符号链接。

相反,你sudo什么你最好你去Ubuntu软件中心得到你想要的东西,所有在一个所以你不必sudo他们所有只需点击一件事,一切都在一个包,准备好了使用…

 ln -s /usr/include/freetype2/freetype /usr/include 

我从源http://sourceforge.net/projects/freetype/files/安装了freetype

 ./configure --without-png make sudo make install