【问题标题】:Autocompletion from stdin with clang使用 clang 从标准输入自动完成
【发布时间】:2011-10-02 13:31:27
【问题描述】:

我已经在 Emacs 中设置了一个自动完成环境,使用 clang 2.8 作为解析器。它运行良好,但依赖于在完成之前将当前编辑的缓冲区保存到文件中。这很慢,所以我试图让 clang 解析通过标准输入提供给它的文件,但到目前为止没有运气。

解析文件时我输入clang的命令行如下:

clang -cc1 -fsyntax-only -Iinclude/ -code-completion-at foo.cpp:10:20 foo.cpp

这很好用。但尝试从标准输入读取失败。我试过这个:

cat foo.cpp | clang -xc++ -cc1 -fsyntax-only -Iinclude/ -code-completion-at -:10:20 -

但这会使 clang 终止而不进行任何完成并打印警告:

clang: warning: argument unused during compilation: '-cc1'
clang: warning: argument unused during compilation: '-code-completion-at'
clang: warning: argument unused during compilation: '-:10:20'

有什么想法吗?

【问题讨论】:

    标签: c++ c clang code-completion


    【解决方案1】:

    如果在-x c++ 之前指定-cc1 是否有效?

    【讨论】:

    • 嗯,不,但错误是不同的。它现在只是说“致命错误:找不到代码完成文件-”。
    • 很不幸,如果我使用clang -cc1 -x c++ -fsyntax-only -code-completion-at -:7:15 - <test.cc 它工作正常。 Clang 2.0 FWIW。
    • 啊,该死的。我刚刚尝试了一个新构建的铿锵树干的 HEAD 修订版,它可以工作。典型的,这意味着我的操作系统的内置版本将无法工作。感谢您为我解决问题。
    猜你喜欢
    • 2014-11-13
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多