【已解决】Linux 安装 GraphicsMagick 在 make 时, freetype 报错,求各路大神指点迷津!!!急急急!!!已经搞了整整 2天了

【已解决】- 解决方案见末尾。

Linux CentOS7.2   安装  GraphicsMagick 的时候,

忘记装依赖了,就把安装目录删除,重新安装,

但一直卡在 make 的时候, freetype 报错,

尝试了各种办法,就是过不去,求大神帮忙,感激不尽!!!

 

以下是我的操作步骤:

1、安装依赖:

yum -y install libjpeg libjpeg-devel libpng libpng-devel giflib giflib-devel freetype freetype-devel

2、mkdir /usr/local/soft/

cd /usr/local/soft/

3、下载安装包:

wget  https://nchc.dl.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.30/GraphicsMagick-1.3.30.tar.gz

4、解压:

tar zxf GraphicsMagick-1.3.30.tar.gz

5、进入解压目录:

cd GraphicsMagick-1.3.30

6、使用 configure 配置安装路径,以及需要安装的模块:

./configure --prefix=/usr/local/GraphicsMagick --enable-shared

7、编译

make

 

GraphicsMagick 在 make 时报错,如下:

【make 报错】:

[root@lisl-host GraphicsMagick-1.3.31]# make

Makefile:9997: warning: overriding recipe for target `PerlMagick/Magick.pm'

Makefile:4551: warning: ignoring old recipe for target `PerlMagick/Magick.pm'

make  all-am

make[1]: Entering directory `/usr/local/soft/gm/GraphicsMagick-1.3.31'

Makefile:9997: warning: overriding recipe for target `PerlMagick/Magick.pm'

Makefile:4551: warning: ignoring old recipe for target `PerlMagick/Magick.pm'

 

/bin/sh ./libtool  --tag=CC   --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H   

-I. -I.  -I/usr/include/freetype2  -fopenmp -g -O2 -Wall -pthread -MT magick/magick_libGraphicsMagick_la-annotate.lo 

-MD -MP -MF magick/.deps/magick_libGraphicsMagick_la-annotate.Tpo -c -o magick/magick_libGraphicsMagick_la-annotate.lo 

`test -f 'magick/annotate.c' || echo './'`magick/annotate.c

 

libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I/usr/include/freetype2 -fopenmp -g -O2 -Wall 

-pthread -MT magick/magick_libGraphicsMagick_la-annotate.lo -MD -MP -MF magick/.deps/magick_libGraphicsMagick_la-annotate.Tpo -c magick/annotate.c  

-fPIC -DPIC -o magick/.libs/magick_libGraphicsMagick_la-annotate.o

 

In file included from magick/annotate.c:70:0:

magick/annotate.c: In function ‘RenderFreetype’:

/usr/include/freetype2/freetype/freetype.h:801:37: error: ‘FT_ENCODING_PRC’ undeclared (first use in this function)

#define ft_encoding_gb2312          FT_ENCODING_PRC

     ^

magick/annotate.c:1232:23: note: in expansion of macro ‘ft_encoding_gb2312’

encoding_type=ft_encoding_gb2312;

       ^

/usr/include/freetype2/freetype/freetype.h:801:37: note: each undeclared identifier is reported only once for each function it appears in

#define ft_encoding_gb2312          FT_ENCODING_PRC

     ^

magick/annotate.c:1232:23: note: in expansion of macro ‘ft_encoding_gb2312’

encoding_type=ft_encoding_gb2312;

       ^

make[1]: *** [magick/magick_libGraphicsMagick_la-annotate.lo] Error 1

make[1]: Leaving directory `/usr/local/soft/gm/GraphicsMagick-1.3.31'

make: *** [all] Error 2

【高亮显示的错误信息】:

magick/annotate.c: In function ‘RenderFreetype’:

/usr/include/freetype2/freetype/freetype.h:801:37: error: ‘FT_ENCODING_PRC’ undeclared (first use in this function)

 

【我做过的尝试】:

 

即便我执行 "make clean" 、"make distclean"、"make installclean" ,

并删除 "/usr/local/GraphicsMagick" 目录,

再重新执行,也没用。

重新安装依赖,也没用。

1.3.31 换成 1.3.30 版本,也不行。

 

求各路大神指点迷津!!!

==============================  下面是解决过程 ==============================

 

解决方案:(同事提醒我的)
            参考文章:
                ImageMagick编译遇到ft_encoding_gb2312错误的解决办法 | 鳗鱼是条狗  

                              https://kinggoo.com/error-magick-gb2312.htm?tdsourcetag=s_pcqq_aiomsg
            分析:
                
再次查看报错信息
                    magick/annotate.c: In function ‘RenderFreetype’:
                    /usr/include/freetype2/freetype/freetype.h:801:37: error: ‘FT_ENCODING_PRC’ undeclared (first use in this function)
                     #define ft_encoding_gb2312          FT_ENCODING_PRC
                                         ^
                    magick/annotate.c:1232:23: note: in expansion of macro ‘ft_encoding_gb2312’
                         encoding_type=ft_encoding_gb2312;
                                   ^
                    /usr/include/freetype2/freetype/freetype.h:801:37: note: each undeclared identifier is reported only once for each function it appears in
                     #define ft_encoding_gb2312          FT_ENCODING_PRC
                                         ^
                    magick/annotate.c:1232:23: note: in expansion of macro ‘ft_encoding_gb2312’
                         encoding_type=ft_encoding_gb2312;

                一开始只关注有提示 error 的那部分信息,忽略了下面的内容:
                
                    magick/annotate.c:1232:23: note: in expansion of macro ‘ft_encoding_gb2312’
                         encoding_type=ft_encoding_gb2312;
                                   ^
                    /usr/include/freetype2/freetype/freetype.h:801:37: note: each undeclared identifier is reported only once for each function it appears in
                     #define ft_encoding_gb2312          FT_ENCODING_PRC
                                         ^
                    magick/annotate.c:1232:23: note: in expansion of macro ‘ft_encoding_gb2312’
                         encoding_type=ft_encoding_gb2312;

                其实,重点是这部分信息,因为正是 ‘ft_encoding_gb2312’ 没有全大写,它导致了:
                    /usr/include/freetype2/freetype/freetype.h:801:37: error: ‘FT_ENCODING_PRC’ undeclared (first use in this function)
            
小结:
                换各种搜索引擎,对以下内容进行全网搜索,都找不到有用信息,甚至相关信息几乎没有:

                    magick/annotate.c: In function ‘RenderFreetype’:
                    /usr/include/freetype2/freetype/freetype.h:801:37: error: ‘FT_ENCODING_PRC’ undeclared (first use in this function)
                
            
步骤:
                修改 【源码包/magick/annotate.c】 文件中,第 1232 行的 【encoding_type=ft_encoding_gb2312】改为【encoding_type=FT_ENCODING_GB2312】:

                    命令:
                        cd /usr/local/soft/gm/GraphicsMagick-1.3.31/magick
                        ll
                        vim annotate.c
                        :set nu
                        :1232
                        i
                    此时,已进入插入模式,将 "encoding_type=ft_encoding_gb2312" 改为 "encoding_type=FT_ENCODING_GB2312"
                    按 Esc 退出
                    保存并退出 vim 模式 - 命令:
                        :wq
                        
                重新 make => 编译通过!!!编译过程较久(2分钟左右),需耐心等待。
                接着,按安装步骤继续执行即可。

================= end 最后,谢谢大家关注本文,祝你们好运!!! end =======================

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值