5 c++ vim linker compiler-errors
我不知道我在做什么。我决定使用 Vim 作为我唯一的编辑器,我正在尝试设置自动完成和语法检查。
所以我需要.ccls在项目的根目录中配置一个文件(并且我不想生成文件,compile_commands.json所以请不要告诉我)。但没有任何详细的文档,.ccls因为它所做的只是使用编译器标志,我当然不知道;我不久前开始使用 C++,而且我不懂 CMake,我习惯于从 IDE 运行我的代码!
我知道放入我的默认代码.ccls是我的包含路径,我确实放入了该路径(这是我使用的 5 个路径clang++ -E -x c++ - -v < /dev/null),顺便说一句,我在 mac 上。我放置了这些,我得到了自动补全,但是我的源代码因错误而中断,告诉诸如 iostream 之类的内容,并且/usr/local/include即使我提供了 4 个其他路径,其他所有标头也不存在(它确实不会退出,/usr/local/include我不知道 iostream 和那些其他人是),而我不能,cout << "Hello, World!" << endl例如因为 ostream 和char[]不兼容之类的事情。顺便说一句,即使我使用compile_commands.json我仍然会收到错误,它只能修复我的标头路径。
有人可以解释一下如何使用.ccls吗?没有链接,只有简单的解释。或者至少有一个默认配置可以让我继续下去。
PS 我还需要提供项目头文件的路径吗?
这是我的.ccls:
clang++
%cxx -std=c++17
%cxx -stdlib=libc++
%hxx --include=Global.h
%cxx -I/usr/local/include
%cxx -I/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1
%cxx -I/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include
%cxx -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include
%cxx -I/Library/Developer/CommandLineTools/usr/include
Run Code Online (Sandbox Code Playgroud)
我可能是错的,但我会保持简单并将这些行放入文件.ccls中
clang
-std=c++17
-stdlib=libc++
-isystem/usr/local/include
-isystem/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1
-isystem/Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include
-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include
-isystem/Library/Developer/CommandLineTools/usr/include
Run Code Online (Sandbox Code Playgroud)
如果它首先适用于此,那么您可以在所有这些行前加上%cxx %c-- 好吧,-std=c++17,-stdlib=libc++和 ,..../include/c++/v1但仅适用于 C++。
顺便说一句,我不确定第一行是否应该是clangor clang++。
注意:我使用它-isystem的原因如下:
您可以使用 -I 覆盖系统头文件,替换您自己的版本,因为这些目录是在标准系统头文件目录之前搜索的。但是,您不应使用此选项来添加包含供应商提供的系统头文件的目录;使用 -isystem 来实现这一点。 -- https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
| 归档时间: |
|
| 查看次数: |
9544 次 |
| 最近记录: |