「Emacs」- 编译安装

  CREATED BY JENKINSBOT

注意事项

如果编译 Emacs 只是为了体验新版本,建议使用 AppImage 程序,参考 Get latest version (Emacs) 笔记。

GNU Emacs 27.1 on Debian GNU/Linux 10 (buster)

Emacs-27.1

GNU Emacs 25.1 on Debian 8

BLFS/Emacs-25.1-rc2

第一步、源码下载

镜像服务器地址列表:https://www.gnu.org/prep/ftp
清华镜像地址:https://mirrors.tuna.tsinghua.edu.cn/gnu/emacs

第二步、编译并安装

# Without GUI
./configure \
	--prefix=/usr \
	--localstatedir=/var \
	--without-x

# With GUI
apt-get install libgtk2.0-dev libxpm-dev libgif-dev

./configure \
	--prefix=/usr \
	--localstatedir=/var \
	--with-x-toolkit=gtk2

详细构建说明,参考 BLFS/Emacs-25.1-rc2 页面。

之所以不常使用 GUI 是因为:Emacs 中的一个 BUG,无法输入中文;如果要解决整个问题,需要在启动Emacs时,将 LC_CTYPE 设置为 zh_CN.UTF-8,即:LC_CTYPE=zh_CN.UTF-8 emacs。有关内容参考:https://wiki.archlinux.org/index.php/fcitx#Emacs

安装的可执行程序

ctags
生成标记文件,文件中记录的是:源码之间的交叉引用关系。
就是IDE里经常使用的那个:按住Ctrl,然后点击函数名的功能中使用的标记文件

etags
生成标记文件,文件中记录的是:源码之间的交叉引用关系。
就是IDE里经常使用的那个:按住Ctrl,然后点击函数名的功能中使用的标记文件

ebrowse
允许从emacs中浏览C++类层次结构。

emacs
Emacs编辑器

emacsclient
将emacs会话附加到已经运行的emacsserver实例上。

grep-changelog
打印符合各种条件的ChangeLog中的条目。

可能遇到的编译错误

#0 [bootstrap-emacs] Segmentation fault

compiling – How to compile GNU Emacs 25.1 on 16.10 – Ask Ubuntu

问题描述:在执行 make 命令时,出现的错误。

解决方案:在配置时,不使用PIE:

CFLAGS=-no-pie ./configure

参考文献

BLFS/Emacs-25.1-rc2
Emacs-27.1