在文档转换器中,需要在linux上安装swftools,经历了一番曲折过程终于安装成功。swftools安装包从http://www.swftools.org/download.html上面下载。

在./configure过程中会提示需要依赖包freetype和jpegsrc,这两个依赖包可以从官网上下载,也可以从swftools上下载http://download.savannah.gnu.org/releases/freetype/和http://www.ijg.org/files/上下载。

  • 安装freetype-2.5.3.tar.gz
       tar -xzvf freetype-2.5.3.tar.gz
       cd freetype-2.5.3
       ./configure
       make 
       make install
  • 安装jpegsrc.v9a.tar.gz
       tar -xzvf jpegsrc.v9a.tar.gz
       cd jpeg-9a
       ./configure
       make 
       make install
  • 安装swftools
             解压并执行

      tar -xzvf swftools-2013-04-09-1007.tar.gz
      cd swftools-2013-04-09-1007
      ldconfig  /usr/local/lib

提示错误ldconfig: /lib64/libz.so.1 is not a symbolic link, 解决方法是

      cd /lib64/
      ls -al

看到libz.so.1不是一个连接而是一个文件

      rm -rf libz.so.1
      ln -s /lib64/libz.so.1.2.8 /lib64/libz.so.1  

继续执行

      ./configure --prefix=/usr/local/swftools
      make 

在编译jpeg.c时出错,见图

     
     源代码错误,提示swftools-2013-04-09-1007/lib/jpeg.c没有定义常量TRUE,检查并修改jpeg.c文件,添加以下内容
  #include "types.h"

屏蔽365行的typedef unsigned char U8后,重新编译swftools

另外几种错误

gif2swf.c: In function ‘MovieAddFrame’:
gif2swf.c:233: error: too few arguments to function ‘DGifOpenFileName’
gif2swf.c:239: warning: implicit declaration of function ‘PrintGifError’
gif2swf.c:458: error: too few arguments to function ‘DGifCloseFile’
gif2swf.c: In function ‘CheckInputFile’:
gif2swf.c:491: error: too few arguments to function ‘DGifOpenFileName’
gif2swf.c:521: error: too few arguments to function ‘DGifCloseFile’
make[1]: *** [gif2swf.o] Error 1
make[1]: Leaving directory `/home/pjroot/swftools-2013-04-09-1007/src'
make: *** [all] Error 2

错误原因:
        由于giflib 5.1的DGifOpenFileName函数和DGifCloseFile函数参数签名发生变化,而gif2swf.c中调用仍然使用旧有版本导致参数不匹配
DGifOpenFileName变化

GifFileType *DGifOpenFileName(char *GifFileName)//old
GifFileType *DGifOpenFileName(char *GifFileName, int *ErrorCode) //new

DGifCloseFile变化

int DGifCloseFile(GifFileType *GifFile) // old
int DGifCloseFile(GifFileType *GifFile, int *ErrorCode) //new

解决方法:
        gif2swf.c 中几处做修改
        233和491行          
        if ((gft = DGifOpenFileName(sname)) == NULL) {
        改为
       if ((gft = DGifOpenFileName(sname, 0)) == NULL) {

458和512行   
       DGifCloseFile(gft);改为    DGifCloseFile(gft, NULL);

making all in m4...
cd m4;make all
make[1]: Entering directory `/home/pjroot/swftools-2013-04-09-1007/m4'
make[1]: Leaving directory `/home/pjroot/swftools-2013-04-09-1007/m4'
making all in lib...
cd lib;make all
make[1]: Entering directory `/home/pjroot/swftools-2013-04-09-1007/lib'
gcc -c -DHAVE_CONFIG_H -I/usr/local/swftools/include -I/usr/local/include/freetype2 -I/usr/local/include -fPIC -Wimplicit -Wreturn-type -Wno-write-strings -Wformat -O -fomit-frame-pointer rfxswf.c -o rfxswf.o
In file included from ./bitio.h:23,
from rfxswf.h:37,
from rfxswf.c:28:
./types.h:39:2: error: #error "no way to define 64 bit integer"
./types.h:42:2: error: #error "don't know how to define 32 bit integer"
./types.h:45:2: error: #error "don't know how to define 16 bit integer"
./types.h:48:2: error: #error "don't know how to define 8 bit integer"
make[1]: *** [rfxswf.o] Error 1
make[1]: Leaving directory `/home/pjroot/swftools-2013-04-09-1007/lib'
make: *** [all] Error 2

错误原因:
        没有连接到库,执行以下命令

    ldconfig /usr/local/lib

再次重新configure并make安装

   ./configure --prefix=/usr/local/swftools
   make 
   make install
   make clean
   make distclean
</pre></div></div><p></p><ul><li>测试是否安装正确</li></ul><p><pre name="code" class="plain">pdf2swf -s languagedir=/usr/local/share/xpdf/chinese-simplified -T 9 -s poly2bitmap -s zoom=150 -s flashversion=9 2.pdf -o 2.swf

linux64下安装swftools的更多相关文章

  1. linux下安装swftools工具

    swfTools是一种实用工具与Adobe Flash文件(swf文件)工作的集合.可以把(pdf/gif/png/jpeg/jpg/font/wav) 7种格式转换为swf文件.一般常用于文件在线浏 ...

  2. 在UEFI下安装windows和Ubuntu双系统目前不可行

    UEFI是BIOS的升级,未来将取代BIOS,说白了,就是跟BISO差不多的作用.但是目前比较新的主板兼容两种设置就比较坑了,默认是UEFI,UEFI下只能安装win8以上的版本,和linux64位系 ...

  3. linux 下安装jdk及配置jdk环境图解

    linux 下安装jdk及配置jdk环境图解 一:先检測是否已安装了JDK 运行命令: # rpm -qa|grep jdk  或   # rpm -q jdk  或  #find / -name j ...

  4. Ubuntu16.04下安装MATLAB 2016b!完美运行

    目录 1.下载MATLAB 2016b 2.挂载iso 3.安装MATLAB 4.破解 5.快捷键与运行 1.下载MATLAB 2016b 下载matlab 2016b for linux(可以百度搜 ...

  5. linux下安装cmake方法(1)---下载压缩包

    OpenCV 2.2以后的版本需要使用Cmake生成makefile文件,因此需要先安装cmake:还有其它一些软件都需要先安装cmake 1.在linux环境下打开网页浏览器,输入网址:http:/ ...

  6. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

  7. Ubuntu1604下安装Liggghts及CFDEM Coupling

    部分内容参考http://www.linuxdiyf.com/linux/16315.html LIGGGHTS是一款开源的DEM软件,来自于著名的分子动力学软件LAMMPS,目前借助于CFDEM C ...

  8. 在Ubuntu下安装ovs-dpdk

    在Ubuntu下安装ovs-dpdk 参考资料:https://software.intel.com/zh-cn/articles/using-open-vswitch-with-dpdk-on-ub ...

  9. CentOS 6.3下 安装 Mono 3.2 和Jexus 5.4

    最新更新参看: Centos 7.0 安装Mono 3.4 和 Jexus 5.6 2012年初写过一篇<32和64位的CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0 ...

随机推荐

  1. UVA 1513 Movie collection

    #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 200010 #define l ...

  2. Gdi+实用入门

    大部分是参照其它资料,然后加以自己的理解,那是什么,总结.算不得什么教程.......汗,自己看着就行了..如果别人能看那就更好了. 首先下载GDI+文件包,一个动态链接库,使用GDI+就是调用那个动 ...

  3. C#功能扩张方式

    有时候,为了完成一些window的一些操作,需要引入一些dll进行操作 1)  引入系统api进行操作,形如[DllImport("urlmon.dll", CharSet = C ...

  4. linux 复制文件时,报cp: omitting directory `XXX'

    今天在用linux命令进行文件复制时omitting cp -i BBS /opt/workspace/apache-tomcat-6,参数用的是 -i),所以也不太熟悉,原来,还有子目录文件,而是必 ...

  5. [DP] LCS小结

    额..失误.. LCS是Longest Common Subsequence的缩写,即最长公共子序列.一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则为最长公共子序列. DP.O ...

  6. 解决MySQL服务启动时报1067错误

    工具/原料 MySQL_5.6.24_win32 方法/步骤 当我们安装完Mysql时,如果在服务当中(可以在“运行”-->"service.msc"打开并查看)无法看到My ...

  7. Java 编程下 Eclipse 如何设置单行代码显示的最大宽度

    Eclipse 下一行代码的默认宽度是 80 , 稍长一点的一行代码就会自动换行,代码可读性较差,我们可以自己在 Eclipse 对代码宽度进行设置. 设置路径为:[Window]→[Preferen ...

  8. extjs动态树 动态grid 动态列

    由于项目需要做一个动态的extjs树.列等等,简而言之,就是一个都是动态的加载功能, 自己琢磨了半天,查各种资料,弄了将近两个星期,终于做出来了 首先,想看表结构,我的这个功能需要主从两张表来支持 代 ...

  9. Windows 8 Hyper-V虚拟机功能(转载)

    刚才看见一兄弟w500折腾win8 hyper-v功能,普及下吧,欢迎各位斧正 Windows 8 中 Hyper-V 3.0 的 CPU 支持说明 Windows 8 将直接内置 Hyper-V 3 ...

  10. 1002: Prime Path

    题目链接:http://172.16.200.33/JudgeOnline/problem.php?id=1002 题意:给你两个四位数的素数,求最少经过多少步的变化能够从一个素数变到另一个素数.在变 ...