gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:23:17 26 4
gpt4 key购买 nike

我已经设置了一个简单的项目来测试 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 文件。

最佳答案

您的 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变量。

关于vim - clang_complete - cc_args.py 不会生成 .clang_complete 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13484622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com