![](/img/trans.png)
[英]How to have company mode, irony backend, and irony header work in emacs
[英]Company-clang mode in emacs on windows
我在使clang与emacs上的company-mode一起工作的最后一步遇到麻烦。
我有
(setenv "PATH" (concat (getenv "PATH") ";C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin\\amd64\\amd64;"))
(custom-set-variables
'(company-c-headers-path-system
(quote
("c:/users/chowron/Documents/Development/include" "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\include" "C:\\Program Files (x86)\\Windows Kits\\8.1\\Include\\shared" "C:\\Program Files (x86)\\Windows Kits\\8.1\\Include\\um")))
'(company-clang-arguments
(quote
("-I \"C:\\\\Program Files (x86)\\\\Microsoft Visual Studio 14.0\\\\VC\\\\include\"" "-I \"c:\\\\Program Files (x86)\\\\Windows Kits\\\\10\\\\Include\\\\10.0.10586.0\\\\ucrt\"" "-I \"c:\\\\users\\\\chowron\\\\Documents\\\\Development\\\\include\"")))
'(company-clang-executable
"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\ClangC2\\bin\\amd64\\clang.exe")
'(company-clang-insert-arguments nil))
在一个简单的程序中
#include <iostream>
#include <string>
int main(int argc, char** argv) {
std::string food;
food. // Completion at point here
}
我看到叮当声
clang failed with error 1:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ClangC2\bin\amd64\clang.exe -fsyntax-only -Xclang -code-completion-macros -x c++ -I "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\include" -I "c:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.10586.0\\ucrt" -I "c:\\users\\chowron\\Documents\\Development\\include" -Xclang -code-completion-at=-:9:8 -
<stdin>:1:10: fatal error: 'iostream' file not found
#include <iostream>
^
1 error generated.
但是,在CMD.exe上运行它似乎可以正常工作。 使用stdin最后输入带有CTRL-Z的文件会发出一堆警告,最终
...
COMPLETION: pop_back : [#void#]pop_back()
COMPLETION: push_back : [#void#]push_back(<#char _Ch#>)
COMPLETION: rbegin : [#reverse_iterator#]rbegin()
COMPLETION: rbegin : [#const_reverse_iterator#]rbegin()[# const#]
...
所以我想我已经在emacs中设置了命令行参数和路径,但是缺少某些设置或emacs函数吗?
我发现问题在于如何设置包含“ -I”路径。 对于可能遇到相同问题的任何人。
在.emacs设置中,您必须像这样编写它
(quote
("-IC:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\include" "-Ic:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.10586.0\\ucrt" "-Ic:\\users\\chowron\\Documents\\Development\\include" "-v")))
“程序文件(x86)...”路径周围没有引号。 让clang做解释。
需要特别注意的是,这至少与VS2015 Release 2和更高版本捆绑在一起的clang一起使用。 它也应该与正式版本一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.