clang_complete - cc_args.py не будет генерировать файл.clang_complete
Я настроил простой проект для проверки жизнеспособности VIM как компилятора C++ плюс простой make-файл из учебника, но я не могу сгенерировать файл.clang_complete из сценария cc_args.py.
Readme говорит, что я должен бежать:
make CC='~/.vim/bin/cc_args.py gcc' CXX='~/.vim/bin/cc_args.py g++' -B
Но он не будет генерировать файл.clang_complete из make-файла.
Вот мой простой проект.
//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
Makefile:
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 ответ
Ваш Makefile игнорирует CC
а также CXX
переменные среды и просто использует g++
непосредственно. Измените правило приветствия на
hello: $(OBJ)
$(CXX) -o $@ $^ $(CFLAGS)
А потом make CXX='.vim/bundle/clang_complete/bin/cc_args.py g++' -B
должно сработать.
%.o: %.cpp $(DEPS)
правило использует CC
, но это правило никогда не используется, так как ваш OBJS
переменные все .cpp
и не .o
переменные.