defvar
定義を追加することで、未定義のフリー変数に関するコンパイラ警告を回避するようにしてください。
(defvar foo)
このような定義は、本ファイル内での変数 foo
の使用についてコンパイラに警告を出さないよう指示する以外に、何の効果もありません。
declare-function 文を使用してください(関数が定義されていることをコンパイラに伝えるを参照)。
require(require
を参照)を追加することで、次のようにそれらに関するコンパイル警告を回避できます。
(require 'foo)
特定のファイルからマクロのみが必要な場合は、コンパイル時にのみ require できます(コンパイル時の評価を参照)。例えば、
(eval-when-compile (require 'foo))
with-no-warnings の中に記述することです。コンパイラエラーを参照してください。