irh*_*irh 5 macos vim clang clang-complete
如果我将以下内容保存到/tmp/test.cpp:
#include <CoreServices/CoreServices.h>
#include <iostream>
int main() {
CFStringRef my_string = CFSTR("hello, world!");
std::cout << CFStringGetLength(my_string) << '\n';
}
Run Code Online (Sandbox Code Playgroud)
我可以正确编译它!clang++ -framework CoreServices %,但是clang_complete无法从CoreServices完成任何操作.
文档说我应该将编译器选项放在.clang_complete文件中(在这种情况下我使用的是/tmp/.clang_complete),但是到目前为止我尝试的所有内容都会test.cpp|| unknown argument: '-framework'出现在快速修复窗口中.
让clang_complete正确处理框架的正确方法是什么?
请参阅clang_complete: iOS 的 Vim 自动完成以获得有用的答案。显然clang_complete使用了-cc1不支持该-framework参数的选项。
我能够使用-triple和-targetoptions 作为-arch我需要的参数的替换,也许其中一个-cc1参数可以替换-framework?
要重现您的错误,您可以这样做
:! clang -cc1 % -framework CoreServices
Run Code Online (Sandbox Code Playgroud)
所以我认为现在的问题变成了“我如何将框架传递给clang -cc1?”。
编辑:通过运行
clang++ -v -framework CoreServices ./test.cpp
Run Code Online (Sandbox Code Playgroud)
你可以得到输出clang -cc1
我的是
-triple x86_64-apple-macosx10.6.7 -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name test.cpp -pic-level 1 -mdisable-fp-elim -relaxed-aliasing -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 123.2 -v -resource-dir /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/../lib/clang/2.1 -fdeprecated-macro -ferror-limit 19 -fmessage-length 179 -stack-protector 1 -fblocks -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /var/folders/w2/w26NavGvGauuJwhTtEeQ9++++TI/-Tmp-/cc-GbJXd6.o -x c++ ./test.cpp
我从末尾删除了 -o 参数和输入文件,并将其添加到用户选项中,.vimrc但代码完成仍然无法正常工作..嗯
| 归档时间: |
|
| 查看次数: |
3033 次 |
| 最近记录: |