5

以下を /tmp/test.cpp に保存すると:

#include <CoreServices/CoreServices.h>
#include <iostream>

int main() {
  CFStringRef my_string = CFSTR("hello, world!");
  std::cout << CFStringGetLength(my_string) << '\n';
}

でこれを正しくコンパイルできますが!clang++ -framework CoreServices %、clang_complete は CoreServices から何も完了できません。

ドキュメントには、コンパイラ オプションを .clang_complete ファイル (この場合は /tmp/.clang_complete を使用しています) に配置する必要があると書かれていますが、これまでに試したことはすべてtest.cpp|| unknown argument: '-framework'、クイック フィックス ウィンドウに表示されます。

フレームワークを正しく処理するためにclang_completeを取得する正しい方法は何ですか?

4

2 に答える 2

0

役立つ回答については、clang_complete: iOS 用の Vim オートコンプリートを参照してください。どうやら引数をサポートしていないオプションをclang_complete使用しています。-cc1-framework

必要な引数の代わりにオプション-tripleとオプションを使用できました。おそらく、引数の1つを置き換えることができますか?-target-arch-cc1-framework

エラーを再現するには、次のことができます

:! clang -cc1 % -framework CoreServices

したがって、「フレームワークをに渡すにはどうすればよいですか?」という質問になると思いますclang -cc1

編集:実行することにより

clang++ -v -framework CoreServices ./test.cpp 

の出力を得ることができます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が、コード補完はまだ正しく機能しません..うーん

于 2011-10-24T11:10:57.997 に答える