book
2022 年12 月 4 日 01:13
1
在mac下安装emacs-plus@28 with native-comp 命令如下:
brew install emacs-plus@28 --with-dragon-icon --**with**-dbus --**with**-xwidgets --**with**-imagemagick --**with**-native-comp --with-ctags --with-debug
出现错误:Please try installing libgccjit
看到有人介绍:可以 brew edit gcc, 在 languages 里加上 jit, args 里添加 --enable-host-shared, 然后再 brew install gcc。
在终端中brew edit gcc看到如下:如何在终端下添加jit?在终端下好像不能输入和更改?
languages = %w[c c++ objc obj-c++ fortran]
哪里不能改?不能改就是你权限不够,用 root 一把梭。
ksqsf
2022 年12 月 4 日 01:47
3
现在安装 libgccjit 的方法就是 brew install libgccjit
book:
看到有人介绍
过时的老教程就别看了
1 个赞
book
2022 年12 月 4 日 02:08
4
按照上面的brew edit gcc后,brew install -s gcc出现下面的错误:
==> make install DESTDIR=/private/tmp/gcc-20221204-15208-1qg45lw/gcc-12.2.0/buil
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /opt/homebrew
Could not symlink include/libgccjit++.h
Target /opt/homebrew/include/libgccjit++.h
is a symlink belonging to libgccjit. You can unlink it:
brew unlink libgccjit
2.尝试用brew reinstall libgccjit 后
==> Pouring libgccjit-12.2.0.arm64_ventura.bottle.tar.gz
🍺 /opt/homebrew/Cellar/libgccjit/12.2.0: 14 files, 37.2MB
再安装emacs-plus@28 with native-comp
还是出现下面的问题:
configure: error: ELisp native compiler was requested, but libgccjit was not found.
Please try installing libgccjit or a similar package.
直接装不可以吗?我不用 native-compilation,不清楚为什么一个依赖项都要特殊技巧来安装。
Homebrew’s package index
ksqsf
2022 年12 月 4 日 02:43
6
其实我也碰到过这个问题,我觉得这根本是emacs-plus formula自己的问题。你自己下载源码包或者 clone 下来 configure 一点问题都没有。
ksqsf
2022 年12 月 4 日 02:44
7
suliveevil:
不清楚为什么一个依赖项都要特殊技巧来安装
native-comp 刚出的时候 brew 没有 libgccjit 打包,所以要自己改 gcc 的 formula 编译。这些教程现在都过时了。
book
2022 年12 月 4 日 02:48
8
直接brew install gcc libgccjit,后再安装emacs-plus@28 with native-comp也还是出现同样的问题。
libgccjit应该怎么安装?
ksqsf
2022 年12 月 4 日 02:50
9
我已经说了,你的 libgccjit 安装没有问题。这是 emacs-plus 打包的问题,或者又是 Homebrew 在整活。
我觉得安装过程必须要参考官方教程,使用过程倒是可以参考第三方教程。
尤其是 Emacs 的几个 brew formula 各个不一样,逼死选择困难症。
要么自己学习 brew 相关知识解决问题,要么干脆放弃 emacs-plus 用 emacs-head/emacs-mac,或者放弃 native-compilation。
ksqsf
2022 年12 月 4 日 02:59
12
我做了一下调试,估计还是 Homebrew 的锅。
如果用 brew configure ,那 configure 就找不到 brew(PATH 被重置了):
checking for brew... no
然而 configure 要用 brew 去找 libgccjit 的安装位置……
ksqsf
2022 年12 月 4 日 03:13
14
我试了下,把 brew edit emacs-plus@28 把里面的 libgccjit ⇒ :recommended 改成 libgccjit ⇒ :build 就行了。
ksqsf
2022 年12 月 4 日 03:18
15
这个方法不是很可靠。还是自己改 CFLAGS 和 LDFLAGS 吧。
echo "-L$(dirname $(brew ls -v libgccjit | grep -m1 -E 'libgccjit\.(so|dylib)$'))"
结果记为 xxx
echo "-I$(dirname $(brew ls -v libgccjit | grep libgccjit.h))"
结果记为 yyy
然后在 brew edit 里加上
ENV.append "MAC_LDFLAGS", "替换成xxx"
ENV.append "MAC_CFLAGS", "替换成yyy"
当然,最正统的解决方法是给 emacs-plus 报 bug。
edit : 改用 MAC_CFLAGS 和 MAC_LDFLAGS。
book
2022 年12 月 4 日 10:19
16
按照你的方法编译成功。
出现下面的警告可以怎么解决?
Warning (comp): ld: warning: -undefined dynamic_lookup may not work with chained fixups Disable showing Disable logging
ksqsf
2022 年12 月 4 日 12:18
17
编译时的 warning 当他不存在就行,不影响正常使用
wd1
2022 年12 月 6 日 01:09
18
我一直使用 emacs-plus 很长时间了,没遇到你说的问题。libgcc 这些 brew 会通过依赖自己处理吧?我没有特别安装过那个。
你如果遇到问题可以去 emacs-plus 的 issue 页面提交问问吧?那边响应好像也挺快的。
1 个赞
我是直接 brew install emacs-plus --with-native-comp --with-xwidgets
的,直接成功 没有任何问题,我一直都使用最新release版本,不追求追master最新版
book
2022 年12 月 6 日 12:10
20
出现下面的错误如何解决?
fatal: unable to access 'https://github.com/emacs-mirror/emacs.git/': LibreSSL SSL_read: error:02FFF03C:system library:func(4095):Operation timed out, errno 60