你没有安装 binutils,gcc 和 gas
目前 Arch 的 emacs 28.1 还没加入 native-compilation 的支持。还得等等,或者安装 emacs28-git
同问,在 emacsformacos.com 下载安装的 Emacs 28.1,安装完成后,native-comp-available-p
这个变量存在了,但是仍然是 nil
,求助怎么打开 native-compile?
brew install gcc libgccjit
试试看?
你得自个编译
我就看上那个全自动 ligature 了~~
如果用scoop的话,需要注意gcc需要使用gcc-msys
.默认的那个缺少一些开发包,会导致无法编译.
这意思是说:native-compile
特性是和自己机器的硬件强绑定的吗?这样的话,新人入坑又多了一个门槛
已经确定添加了这两个之后不行,native-comp-available-p
这个变量仍然是 nil
……
你用的这个 emacsformacos.com 预编译的版本,我不怎么了解。如果你安装了我说的两个依赖都没作用的话,说明那个版本在编译时没有启用 native-comp。
像Windows 下的预编译版本会自动根据用户是否安装 libgccjit 来判断是否启用 native-comp 特性。
mac 上你可以用下面这个脚本来自动编译 emacs 28, 我是用它来编译 29.
这是我的安装步骤:
git clone https://github.com/jimeh/build-emacs-for-macos # 克隆安装脚本这个项目
cd build-emacs-for-macos
brew bundle # 这个会自动安装需要的依赖
brew services start dbus # 一定要记得启动 dbus,不然编译时会提示警告,虽然不影响使用
./build-emacs-for-macos --native-full-aot # 开启 FULL AOT,会把所有内置包都编译为eln,但是会增加编译时间。
cd builds
tar -xjvf Emacs.2022-xx-xx.xxxxxxx.master.macOS-12.x86_64.tbz # 解压,也可以在编译时加参数不要压缩
最后拷贝 Emacs.app 到 /Application 文件夹即可。
mac上用emacs-plus或者emacs-head,有--with-native-comp
选项,更方便。
哎,我这边代理不给力,用不了 emacs-plus,它要拉整个emacs 仓库,我的 github 拉取很慢。
用 build-emacs-for-macos 这个脚本的好处是,它可以编译指定的 commit 和 tag,只要下载一个 tarball,大概40M,而且他是把所有需要的内容,包括源代码都打包到 Emacs.app ,编译完成后我只要拷贝到 Application 文件夹下就可以用,这样不会污染环境。
这个确实是,灵活性更好。我刚跟emacs-plus提issue了,增加28.1支持,就只需要下载gz包就行了。
另外一个小技巧,在这个目录下自己去拉emacs代码,用--depth=1
。。。我就是这么干的
~/Library/Caches/Homebrew/emacs-plus@28--git
这个也是个办法。
emacs-plus 支持 28.1 的话,对于新人在 macOS 安装 Emacs 确实要方便很多。
emacs-plus 还有个好处是方便替换 Emacs 图标
macOS 可以自行更换应用的图标。
git://git.savannah.gnu.org/emacs.git 速度不慢啊。我一直都是用主站的,全量clone。
我在主站一点速度都没有。curl 直接下gihub mirror 的 tarball 有 700k 速度。直接clone gihub mirror 的话,最近速度只有 100k,到一半就会断(depth =1)。
还是Arch省心,昨天已经自动升级。。。
要不翻出去,要不用ssh方式,即git@github这样的。ssh方式访问github不用翻,速度也不错。