我在爲C++ 11配置flycheck時遇到了很大的麻煩。現在,flycheck正在標記諸如std::to_string()
之類的內容。我使用的檢查器只是g ++。我可以在.emacs文件中添加什麼,以便flycheck默認使用C++ 11?將Flycheck配置爲使用C++ 11
17
A
回答
37
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來配置每個項目的語言標準。
在Dired中打開項目的根目錄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。
4
已經很好的答案了。我只想補充一點,如果您使用clang
代替,那麼需要修改的變量是flycheck-clang-language-standard
。
+1
或在位於項目根目錄的.clang_complete文件中添加一行「-std = C++ 11」。 – elinx
相關問題
- 1. Flycheck UsePackage與C++ 11
- 2. NetBeans 8.2將代碼配置配置爲C++ 11
- 3. 配置與C++ 11
- 4. 將Flycheck設置爲啓用其他模式
- 5. 在Netbeans中配置C++ 11
- 6. 嘗試設置ggtags和flycheck前奏時錯誤的emacs配置
- 7. 使用nginx配置重定向IE 7和IE 11 nginx配置
- 8. 將nginx配置爲使用python3.2
- 9. 使用C++ 11 C#程序
- 10. 使用C++ 11佔位符作爲lambdas?
- 11. C++ 11使用chrono作爲語法糖
- 12. 使用使用C++ 11線程庫C++ 11個線程
- 13. 使用C++ 11 11個lambda代碼
- 14. 將IDLE配置爲使用Unicode
- 15. 可以將Restlet配置爲使用BufferedHttpEntity?
- 16. 將CMake配置爲使用Xcode構建
- 17. 使用ToMethod時,將Ninject配置爲null
- 18. 將Netbeans配置爲使用Symfony - OSX
- 19. 將PHP配置爲使用SMTP功能
- 20. 將Message Broker配置爲使用代理
- 21. 將web.xml配置爲不使用pageContext.request.contextPath?
- 22. C++ 11的shared_ptr的分配
- 23. 雙重分配在C++ 11
- 24. IntelliJ 11 - Grails SDK未配置
- 25. C#將負整數轉換爲11位
- 26. 如何在iOS 11中將導航欄設置爲透明11
- 27. 在AD中使用OIM 11 R2重新配置用戶
- 28. emacs的flycheck語法checher爲CPP文件
- 29. 將Caffe配置轉換爲DeepLearning4J配置
- 30. 如何將SCOM配置爲Slack配置
我試過用目錄變量和C++緩衝區中的變量顯示爲* C++ 11 *。但我仍然警告,* auto型說明符是C++ 11擴展名*。 –
@Enzo Chi,適用於我,可能需要刪除文件緩衝區並重新打開文件。 –
以防萬一它不適用於某些人:似乎flycheck會在gcc之前使用clang,前提是安裝前。在這種情況下,變量是flycheck-clang-language-standard。 – dmg