I'm played around with my .emacs and installed a few packages from melpa related to C++. Now when I start emacs, I get this error

eval-buffer: Symbol's function definition is void: eieio-defclass-autoload

It doesn't happen with emacs -Q. So I completely emptied my .emacs and removed all packages I installed today. The error persists. I also use desktop sessions, so I turned this off with emacs --no-desktop but with no success. Which file is loaded that causes the error? Here is the complete *messages* buffer

Loading 00debian-vars...done
Loading /etc/emacs/site-start.d/50auctex.el (source)...
Loading /usr/share/emacs/site-lisp/auctex.el (source)...done
Loading /usr/share/emacs/site-lisp/preview-latex.el (source)...done
Loading /etc/emacs/site-start.d/50auctex.el (source)...done
Loading /etc/emacs/site-start.d/50autoconf.el (source)...done
Loading /etc/emacs/site-start.d/50cmake-data.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...
Error while loading 50dictionaries-common: Symbol's value as variable is void: debian-aspell-only-dictionary-alist
Loading /etc/emacs/site-start.d/50ess.el (source)...done
Loading /etc/emacs/site-start.d/50global.el (source)...done
Loading /etc/emacs/site-start.d/50python-docutils.el (source)...done
eval-buffer: Symbol's function definition is void: eieio-defclass-autoload

So I realized that eieio is part of cedet but didn't know how to get rid of it I guess since it's now included into emacs.

  • Did you try --debu-init when starting Emacs? This would give you the stack-trace for this problem. EIEIO is the object system, used by many packages other than CEDET (although it's part of the package). It would be difficult to guess who's doing that. the reason someone would be looking for this variable would be a definition s.a. (defclass ...). Another way to identify the problem would be to try to byte-compile the *.el files that are being loaded.
    – wvxvw
    Commented Feb 25, 2016 at 15:45

1 Answer 1


I ran emacs --debug-init and it pointed to the helm-ls-git package calling eieio-defclass-autoload. Removing helm-ls-git in the package manager solved the problem

  • Excellent, thank you. That worked (could not run Emacs 29.1 properly as it wouln't eval my init.el). Poinpointed an error loading helm-org-rifle. Commented that out, problem gone.
    – Ugur
    Commented Sep 5, 2023 at 14:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.