[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

时间:2022-10-25 23:51:29

1. 背景介绍

GoldenDict 是一款非常优秀的跨平台电子词典软件,支持 StarDict、Babylon 等多种词典。其 PC 版基于 Qt 编写,完全免费、开源且没有广告。GoldenDict 的 Android 版是另外一个全新实现的系统,采用了付费版去广告、免费版显示广告的策略,这里就不详细讨论了。

GoldenDict 在 GitHub 上的地址是 https://github.com/goldendict/goldendict,截至目前(2015-10-17)已经有 1872 个 commit、36 位 contributor、184 次 Fork,开发仍然非常活跃。

但是有个问题是该软件的发布维护并不太完善。官方网站 http://goldendict.org/ 上的下载链接 GodenDict 1.0.1 是 2010 年发布的,距现在已经有 1337 个 commit 了。

如果你是 Windows 用户,想快速安装 GoldenDict 的最新开发版,可以打开这个链接:https://github.com/goldendict/goldendict/wiki/Early-Access-Builds-for-Windows。这个 Wiki Page 一直在持续的更新中,因此就免去了手动编译的麻烦了。

Linux 下的用户就没有那么幸运了。虽然也有一个页面 https://github.com/goldendict/goldendict/wiki/Early-Access-Builds-for-Linux-Portable,但是已经两年多没人维护了。Ubuntu 软件仓库的情况也没有好多少,上面的软件包同样从 2013 年开始就停止更新了,另外目前也没有活跃的 PPA 维护者。

所以在 Linux 下,如果你体验最新的 GoldenDict,手动编译是唯一的选择。

2. 下载、编译、安装

下面就不废话了,介绍一下 Ubuntu 下安装 GodenDict 开发版的方法。下面的描述适用于 Ubuntu 14.04,如果你使用的发行版不一样,可能需要进行一些必要的调整。

首先安装必要的软件包:

sudo apt-get install git g++ libqt4-dev
sudo apt-get install libvorbis-dev libhunspell-dev libao-dev libavutil-dev libavformat-dev
sudo apt-get install libxtst-dev libeb16-dev zlib1g-dev libbz2-dev liblzo2-dev libtiff5-dev

然后下载最新源码:

cd ~
git clone https://github.com/goldendict/goldendict.git

进入 godendict 目录,然后开始编译:

cd goldendict
qmake
make

最后安装编译好的二进制文件:

sudo make install

完成之后,GoldenDict 的主程序位于 /usr/local/bin 目录下,之后可以手动把它加到桌面上。

3. 简单配置、使用指南

如果你之前没用过 GoldenDict 的话,可以看一下这一节。

3.1 准备字典文件

GodenDict 需要外挂字典运行,首先把你需要使用的字典放到任何一个目录下:

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

3.2 添加字典文件

然后打开 GodenDict 的 Edit / Dictionaries 菜单,添加刚才的目录,勾选 Recursive,然后点击 Rescan now

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

在完成后,就可以在 Dictionaries 页面中看到新添加的字典了:

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

这里可以通过拖放来改变字典的显示顺序。

3.3 设置你喜欢的主题样式

打开 GodenDict 的 Edit / Preferences 菜单,可以切换 Display style 选择自己比较喜欢的样式,比如下图展示的是 Lingvo 主题:

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

3.4 配置 Wikipedia

默认情况下,GodenDict 中集成的 English Wikipedia 每次查询都会提示:

Query error: XML parse error: unexpected end of file at 1,1

这是由 HTTP 协议无法工作导致的。解决方法很简单:打开 Edit / Dictionaries 菜单,点击 Wikipedia,然后将 English Wikipedia 的 Address 修改为 https://en.wikipedia.org/w 即可:

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

现在 GoldenDict 就能正常显示 Wikipedia 的内容了:

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

3.5 添加音标字体

笔者经常在查询结果的最上面放一个金山简明英汉字典用来显示音标。这个字典在显示音标时用到了一个叫 Kingsoft Phonetic Plain 的字体。因为目前还没有安装这个字体,所以上面的音标显示是不正确的。但是如果直接将 Windows 下的字体复制到 Linux 下,你会发现得到的都是一个个方框,这是由于 Windows 下的 ttf 文件编码和 Linux 下不同导致的。为了在 Linux 下正常显示音标,就需要对原 ttf 文件进行编码调整。这里提供一个网友制作的专用 ttf 文件:

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

将图片保存到本地,然后把扩展名改为 .rar 解压,就可以得到文件 kingsoft-phonetic-unicode.ttf。把这个文件复制到 /usr/share/fonts/truetype 目录下,然后将权限修改为 644,然后重新登陆就可以使字体生效了。

如果这个图片失效了,可以从这里下载字体文件:http://pan.baidu.com/s/1qWnC9Gw。最终得到的效果如下图所示:

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict

4. 编译问题

理论上只要按照上面的提示安装就不会出现下面的这些问题。如果出现了,那基本上就是缺少对应的开发文件。这里把一些情况列出来,只是为了方便遇到问题的人可以通过搜索引擎搜索定位到对应的问题。

a) 如果编译时遇到下面的提示:

hotkeywrapper.hh:11:35: fatal error: X11/extensions/record.h: No such file or directory
#include <X11/extensions/record.h>
^
compilation terminated.
make: *** [build/main.o] Error 1

那么需要确保这个软件包已安装:libxtst-dev

b) 如果编译时遇到下面的提示:

epwing_book.hh:21:19: fatal error: eb/eb.h: No such file or directory
#include <eb/eb.h>
^
compilation terminated.
make: *** [build/mainwindow.o] Error 1

那么需要确保这个软件包已安装:libeb16-dev

c) 如果编译时遇到下面的提示:

bgl_babylon.hh:25:18: fatal error: zlib.h: No such file or directory
#include <zlib.h>
^
compilation terminated.
make: *** [build/bgl_babylon.o] Error 1

那么需要确保这个软件包已安装:zlib1g-dev

d) 如果编译时遇到下面的提示:

decompress.cc:3:19: fatal error: bzlib.h: No such file or directory
#include "bzlib.h"
^
compilation terminated.
make: *** [build/decompress.o] Error 1

那么需要确保这个软件包已安装:libbz2-dev

e) 如果编译时遇到下面的提示:

mdictparser.cc:26:23: fatal error: lzo/lzo1x.h: No such file or directory
#include <.zo/lzo1x.h>
^
compilation terminated.
make: *** [build/mdictparser.o] Error 1

那么需要确保这个软件包已安装:liblzo2-dev

f) 如果编译时遇到下面的提示:

tiff.cc:12:18: fatal error: tiff.h: No such file or directory
#include "tiff.h"
^
compilation terminated.
make: *** [build/tiff.o] Error 1

那么需要确保这个软件包已安装:libtiff5-dev

[Linux 小技巧] Ubuntu 14.04 下编译、安装、配置最新开发版 GoldenDict的更多相关文章

  1. Ubuntu 14&period;04 下NFS安装配置

    1.执行命令:sudo apt-get install nfs-kernel-server; 2.执行命令:mkdir /home/jack/nfs-share 建立一个nfs服务的专有的文件夹; 3 ...

  2. Ubuntu 14&period;04下NFS安装配置

    1.安装nfs-server # apt-get install nfs-kernel-server 2.建立nfs专用文件夹 # mkdir /data/disk1 3.配置nfs # vi /et ...

  3. VoIP应用在Ubuntu 14&period;04下编译FFmpeg libX264及PJSIP

    PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了.  它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...

  4. Ubuntu 16&period;04下编译安装Apache2&period;4和PHP7结合

    Ubuntu 16.04下编译安装Apache2.4和PHP7结合,并安装PDOmysql扩展. 1.编译安装apache2.4.20 1 第一步: ./configure --prefix=/usr ...

  5. Ubuntu 14&period;04 下手动安装Firefox的Flash插件

    有时候我们不得不採用手动安装一些软件. Ubuntu 14.04 下手动安装Firefox的Flash插件有下面几步 1. 下载Flash插件 下载地址为http://get.adobe.com/cn ...

  6. Redis、Redis&plus;sentinel安装(Ubuntu 14&period;04下Redis安装及简单测试)

    Ubuntu下Redis安装两种安装方式: 1.apt-get方式 步骤: 以root权限登录,切换到/usr目录下. 接下来输入命令,apt-get install redis-server,如图: ...

  7. Ubuntu 14&period;04下搭建Node&period;js的开发环境

    最近想找一个轻量级且支持快速开发的服务开发平台,选来选去选择了Node.js,当时有几种选择: Python + Django(用过Django,虽然开发快速,但是感觉性能并不太好). Ruby + ...

  8. Ubuntu 14&period;04 java环境安装配置(不是openJAVA&rpar;

    两种配置方式 第一: 在 Ubuntu 中使用 PPA 安装 Java 8 ( 支持 Ubuntu 10.04 - Ubuntu 14.04 ): sudo add-apt-repository pp ...

  9. &lbrack;转&rsqb; Ubuntu 12&period;04下LAMP安装配置 &lpar;Linux&plus;Apache&plus;Mysql&plus;PHP&rpar;

    我是一个Linux新手,想要安装一台Ubuntu 12.04版的Linux服务器,用这台服务器上的LAMP套件来运行我自己的个人网站.LAMP套件就是 “Linux+Apache+Mysql+PHP这 ...

随机推荐

  1. MySQL 性能优化的最佳20多条经验分享&lbrack;转&rsqb;

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.     当我们去设计数据库表结构, ...

  2. 测试耗电量的工具(Android)

    Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具. 支持SDK:Android2.2以及以上版本 Emmagee功能介绍 1.检测当前时间被测应用占用的CP ...

  3. 如何在asp&period;net中获取GridView隐藏列的值?

    在阅读本文之前,我获取gridview某行某列的值一般做法是这样的:row.Cells[3].Text.ToString().有点傻瓜呵呵 在Asp.net 2.0中增加了一个新的数据绑定控件:Gri ...

  4. Jquery 学习三

    一.each语句 1.each语句的功能 在jQuery中,通过$函数获取的都是jQuery对象.通过测试可知,jQuery对象是一个类数组的特殊对象,其是DOM对象的集合.而each语句就是专门用于 ...

  5. dom4j处理java中xml还是很方便的

    http://blog.csdn.net/chenghui0317/article/details/11486271 输入: String flighter = RequestUtil.get(&qu ...

  6. 特卖电商俏物悄语或面临破产 ihush域名夭折?&colon;域名新闻&colon;域名门户&colon;eName&period;CN

    特卖电商俏物悄语或面临破产 ihush域名夭折?:域名新闻:域名门户:eName.CN 特卖电商俏物悄语或面临破产 ihush域名夭折?

  7. js几秒以后倒计时跳转示例

    代码如下: <html> <head> <title>出错啦~~~</title> <link href="css/login1.css ...

  8. Android app security安全问题总结

    数据泄漏 本地文件敏感数据不能明文保存,不能伪加密(Base64,自定义算法等) android:allowbackup=false. 防止 adb backup 导出数据 Activity inte ...

  9. Fundebug支付宝小程序BUG监控插件更新至0&period;2&period;0,新增test&lpar;&rpar;方法,报错增加Page数据

    摘要: 0.2.0新增fundebug.test()方法,同时报错增加了Page数据. Fundebug提供专业支付宝小程序BUG监控服务,可以第一时间为您捕获生存环境中小程序的异常.错误或者BUG, ...

  10. 【RL-TCPnet网络教程】第26章 RL-TCPnet之DHCP应用

    第26章     RL-TCPnet之DHCP应用 本章节为大家讲解RL-TCPnet的DHCP应用,学习本章节前,务必要优先学习第25章的DHCP基础知识.有了这些基础知识之后,再搞本章节会有事半功 ...