声明:本文摘自网络,自己亲测是完全正确的,因此记录下来,以免丢失。
下载源码
这里下载安装的是swftools-0.9.2.tar.gz,具体的地址为:http://www.swftools.org/swftools-0.9.2.tar.gz
解压源码
tar-xzvfswftools-0.9.2.tar.gz
安装依赖项
主要通过brew安装一下四个包:lzlib、giflib、jpeg、freetype。
我的freetype没有安装成功,最后没有影响。
Mac版本安装命令:
切换到swftools解压后的文件目录
./configure执行配置或者执行如下配置命令:
sudo LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" ./configure --prefix=/usr/local/swftools
需要注意这里存在部分代码错误,需要修改解决后执行
一、char * 和 int比较导致的错误, 需要修为文件
错误信息:
在swftools-0.9.2/lib/pdf/xpdf/GlobalParams.cc文件中修改
1 插入文件头
#include <stdlib.h>
2 错误处理代码
(具体修改位置可以参考错误提示),原始代码是直接使用变量做比较,这里需要对变量调用atio函数后比较
二、存在一些变量没有定义的错误
错误信息:
文件swftools-0.9.2/lib/jpeg.c中存在部分变量没有定义,这里需要修改
修改后代码:
//修改后代码#ifdefHAVE_JPEGLIB#ifndefFALSE#defineFALSE 0#endif#ifndefTRUE#defineTRUE 1#endif#defineHAVE_BOOLEAN#include<jpeglib.h>
三、存在一些方法参数数量错误 以及 部分函数没有定义问题
报错信息:
解决方案:
修改文件swftools-0.9.2/src/gif2swf.c等内容:
1.1 全局搜索DGifOpenFileName和DGifCloseFile调用
1.2 在存在调用上述两个方法的地方,定义变量
c
int Error;
并且修改调用为:
c
DGifOpenFileName(sname, &Error)
注意:这里修改需要注意,如果上述两个方法在同一个方法中调用,只需定义一次变量即可
1.3 在当前文件中全局搜索PrintGifError();,将这行代码删除或注释掉。
make编译
make install安装