分享一下MacOS下编译Emacs 28 native-comp分支

话说你们在Mac上用的是emacs哪个版本啊?是怎么安装的?是brew install emacs呢还是自己编译安装的?

我从master分支下最新的编译,mac上没编译native-comp特性,其实速度可以了。主要是心疼我的ssd,重新编译一次emacs可能就得把eln文件都删掉。

也用过emacs mac port,感觉自己编译的更好用点。界面上emacs mac port的更好看点。

brew install emacs-plus@28  --with-native-comp

你们 Emacs 还保留界面的啊?

1 个赞

如果不想要界面呢怎么编译呢

configure: error: You seem to be running X, but no X development libraries
were found.  You should install the relevant development files for X
and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
sure you have development files for image handling, i.e.
tiff, gif, jpeg, png and xpm.
If you are sure you want Emacs compiled without X window support, pass
  --without-x to configure.

emacs -nw 启动不就好了?

*** Configuration aarch64-apple-darwin21.1.0 not supported

用新版的 gcc

GCC12 以后才支持 Apple M1。

1 个赞

感谢!此前在macOS编译带native compilation的Emacs源码时始终出错,如果指定用GCC编译,则又会有若干系统库找不到的错误。所以需要先用Homebrew安装 gcclibgccjit 两个包,然后再带上 --with-native-compilation CC="clang" 选项。这里不需要自己编译GCC,用Homebrew的就行。

这里解释一下:Emacs的原生编译依赖 libgccjit 这个库,但这个库做的事情很奇葩,它并不是一个完整的JIT编译器,只是提供一组API,然后生成C代码再交给GCC做真正的编译。在Homebrew里,它不依赖 gcc 这个包,所以如果只安装 libgccjit 到编译阶段也会出问题。

2 个赞