Reputation: 190769
Let's say I have my own elisp code in ~/bin/hello.el
.
The ~/.emacs
file has the following code to run hello.el
at startup.
(add-to-list 'load-path "~/bin/elisp")
(require 'hello)
But, I get the following error message.
Warning (initialization): An error occurred while loading `/Users/smcho/.emacs':
error: Required feature `hello' was not provided
What's wrong with this?
Upvotes: 8
Views: 2473
Reputation: 3438
If you added ~/bin/elisp
to your load-path
, then Emacs won't find a file in ~/bin
. In this case, Emacs would try to load ~/bin/elisp/hello.el
, and if it can't find that, then it will look for a file named hello.elc
or hello.el
(in that order) in the other parts of your load-path
.
Also, as others have mentioned, hello.el
needs to have a (provide 'hello)
in it (typically at the end).
Upvotes: 1
Reputation: 9481
You have to put something like that in your LISP code:
(provide 'hello)
Upvotes: 4
Reputation: 18782
Does hello.el provide hello? It should start with (provide 'hello)
. See the elisp manual. Does (load "hello.el")
work?
Upvotes: 16