我在为 C++11 配置 flycheck 时遇到了很大的麻烦。现在,flycheck 正在标记诸如 std::to_string()
之类的东西。我使用的检查器只是 g++。我可以在 .emacs 文件中添加什么以使 flycheck 默认采用 C++11?
最佳答案
Flycheck 为此提供了选项 flycheck-gcc-language-standard
。您不应该在全局范围内设置它,因为这会破坏对 C 文件的检查,但您可以在 c++-mode-hook
中使用 init 文件中的以下代码进行设置:
(add-hook 'c++-mode-hook (lambda () (setq flycheck-gcc-language-standard "c++11")))
但是,我建议不要这样做。相反,请使用 Directory Variables为每个项目配置语言标准。
用C-x d
打开你项目的根目录,然后输入M-x add-dir-local-variable RET c++-mode RET flycheck-gcc-language-standard RET “c++11”
。这将在项目的根目录中创建一个 .dir-locals.el
文件。每当您从该目录或任何子目录访问文件时,Emacs 都会读取该文件,并根据该文件中的规则设置变量。具体来说,Emacs 现在将为您项目中的所有 C++ 文件将 Flycheck 语法检查的语言标准设置为 C++ 11。
关于c++ - 配置 Flycheck 以使用 C++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30949847/