clang_complete - cc_args.py不会生成.clang_complete文件

时间:2012-11-21 00:39:49

标签: vim clang clang-complete

我已经设置了一个简单的项目来测试VIM的可行性作为C ++编译器以及教程中的简单makefile,但我似乎无法从cc_args.py脚本生成.clang_complete文件。

自述文件说我应该跑:

make CC='~/.vim/bin/cc_args.py gcc' CXX='~/.vim/bin/cc_args.py g++' -B

但它不会从makefile生成.clang_complete文件。

这是我的简单项目。

//hello.cpp
#include "hello.h"

int main(void)
{
    hello();
    return 0;
}

//hello_fn.cpp
#include <iostream>
#include "hello.h"

void hello()
{
    std::cout << "Hello world!";
}

//hello.h
#ifndef HELLO_H
#define HELLO_H
void hello();
#endif

生成文件:

CC=g++
CFLAGS=-Ihead
DEPS = hello.h
OBJ = hello.cpp hello_fn.cpp

%.o: %.cpp $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS)

hello: $(OBJ)
    g++ -o $@ $^ $(CFLAGS)

hello.h位于名为head的目录中。

运行:

make CC='.vim/bundle/clang_complete/bin/cc_args.py gcc' CXX='.vim/bundle/clang_complete/bin/cc_args.py g++' -B

或:

make CXX='.vim/bundle/clang_complete/bin/cc_args.py g++' -B

不会产生.clang_complete文件。

1 个答案:

答案 0 :(得分:3)

您的Makefile会忽略CCCXX个环境变量,而只是直接使用g++。将hello规则更改为

hello: $(OBJ)
    $(CXX) -o $@ $^ $(CFLAGS)

然后make CXX='.vim/bundle/clang_complete/bin/cc_args.py g++' -B应该有用。

%.o: %.cpp $(DEPS)规则确实使用CC,但此规则从未使用过,因为您的OBJS变量都是.cpp而非.o变量。