2

C++ コンパイラとしての VIM の実行可能性をテストするための簡単なプロジェクトと、チュートリアルからの簡単なメイクファイルをセットアップしましたが、cc_args.py スクリプトから .clang_complete ファイルを生成できないようです。

Readme には、実行する必要があると書かれています。

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 ファイルは生成されません。

4

1 に答える 1

3

Makefile はCCおよびCXX環境変数を無視し、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

于 2012-11-21T04:44:52.940 に答える