刚重新编译了emacs --with-modules 增加 dynamic module 支持.
按照编译后的文档进行了以下操作:
假设 emacs.exe 所在的目录是 d:/path-to-app/bin/, 那么:
1. 确保 d:/path-to-app 这个目录名称中不能包含中文
2. 將 bin 目录下的所有文件复制到目录 d:/path-to-app/bin/
3. 將 share 目录下的所有文件复制到目录 d:/path-to-app/share/
不过用了你的这个配置后还是提示下面的错误,请问应该是哪里没做对。
(liberime-get-module-file)
这个函数返回值是什么?
@tumashu @dcsjx 这个函数返回的是nil值 , (liberime-load) 提示的是 上面第二个图中的信息,看起来是路径不对。是不是还定位到 编译后的librime\data 进行启动输入法?
返回 nil 说明找不到模块,再次检查一下, 运行下面的代码,看看生成的路径有没有文件,
最后实在不行,手动设置变量 liberime-module-file 到你的 liberime-core.dll 文件
(concat (file-name-directory
(or (executable-find "emacs")
"/usr/bin/emacs"))
"liberime-core" module-file-suffix)
用了上面的代码还是一样的错误,但liberime-core.dll 确定已经拷贝到eamcs安装目录下C:\emacs26\bin
设置这个变量 liberime-module-file 到 C:\emacs26\bin\liberime-core.dll
还是一样的错误,我估计是我编译的这个liberime-core.dll 有问题,晚上有时间再研究研究了。
多谢几位耐心解答。
编译的时候,比较一下emacs-module.h是否和emacs 26.3里面的一样。不一样从26.3里copy一个过去试试。
昨天晚上,liberime 已经开启了自动编译 window 二进制包的功能, 有兴趣的同学可以试试,在 release 页面可以找到 v0.0.3 的下载链接,我这 github 打不开了,就不贴链接了。
重新安装了pyrim和liberime,怎么一直出现这个问题:
error: Loading file /home/fg/.emacs.d/depend_libs/liberime/build/liberime.so failed to provide feature ‘liberime’
这个liberime是链接到我的liberime-core.so文件。
把这个链接去掉,使用liberime-core.so的话,提示:
Warning (initialization): An error occurred while loading ‘/home/fg/.emacs’:
File is missing: Cannot open load file, No such file or directory, liberime
我的配置是按照 在Linux版的Emacs中使用RIME输入法 进行配置的。
配置如下:
;; {{{ config liberime
;; see @ https://manateelazycat.github.io/emacs/2019/09/12/make-rime-works-with-linux.html
(setq load-path (cons (file-truename "~/.emacs.d/depend_libs/liberime/build") load-path))
(require 'pyim)
(require 'posframe)
(require 'liberime)
(setq default-input-method "pyim")
(setq pyim-page-tooltip 'posframe)
(setq pyim-page-length 9)
(liberime-start "/usr/share/rime-data/" (file-truename "~/.emacs.d/pyim/rime/"))
(liberime-select-schema "luna_pinyin_simp")
(setq pyim-default-scheme 'rime-quanpin)
;; }}
原来我一直使用Spacemacs,一直没有问题,今天重新使用裸emacs来重新配置了下。发现没折腾好。
load-path 应该不包含 build,因为你是要加载 liberime.el
(liberime-start "/usr/share/rime-data/" (file-truename "~/.emacs.d/pyim/rime/")
这条一般也不需要
建议看看 liberime 的 readme, 里面有一个设置例子