Elisp:如何在字节编译时避免“未知函数被定义”?

abo*_*abo 6 emacs elisp

我的包 ,lispy使用来自 的函数ace-jump-mode。我仍在考虑是否应该使用;; Package-Requires:cookie 或featurep为此使用cookie ,但主要问题是我想要一个干净的字节编译emacs -q.

我认为这应该消除字节编译警告:

(declare-function ace-jump-char-mode "ext:ace-jump-mode")
Run Code Online (Sandbox Code Playgroud)

但事实并非如此。对此有何想法?

确切地说,警告是“以下函数未知定义:ace-jump-char-mode,helm”。

Ste*_*fan 3

如果该函数可能在大多数使用 lispy 的情况下使用,那么您应该只使用类似(require 'ext:ace-jump-mode).

  • 字节编译器不会对由“fboundp”保护的函数调用发出警告,例如,当“foo”未定义时,“(when (fboundp 'foo) (foo))”不会发出警告。 (3认同)