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?
Does hello.el provide hello? It should start with (provide 'hello). See the elisp manual. Does (load "hello.el") work?
You have to put something like that in your LISP code:
(provide 'hello)
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).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With