gpt4 book ai didi

c++ - 无法使用 clang_complete 完成 qt

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:54 24 4
gpt4 key购买 nike

我正在尝试使用 clang_complete作为 vim C++ 补全。我必须注意我正在使用 pathogen也。我采购了为 clang-pathogen 提供的 vimball,并将所有内容放在我的 ~/.vim/bundle/Clang_complete 目录中,一切都像魔术一样工作......我的 STLBoost 完成工作正常。

这是我做的:


1/创建一个test_qt.cpp文件

#include <QApplication>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.resize(250, 150);

window.setWindowTitle("Simple example");
window.show();
return app.exec();
}

2/运行 qmake -project


3/运行 qmake -o Makefile testFiles.pro


4/运行 make

 make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o test_qt.o test_qt.cpp
g++ -m64 -Wl,-O1 -o testFiles test_qt.o -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread

5/运行 ./testFiles 一切正常,我有一个愚蠢的窗口...

所以我不明白为什么我无法完成 qt...我的 Makefile 已正确生成,我该怎么办?我试着跑了

statquant@euclide:~/.vim/testFiles$ make CC= '~/.vim/bundle/Clang_Complete-Pathogen/bin/cc_args.py' CXX='~/.vim/bundle/Clang_Complete-Pathogen/bin/cc_args.py'

但是得到了:

make: Nothing to be done for `/home/statquant/.vim/bundle/Clang_Complete-Pathogen/bin/cc_args.py'.

最佳答案

首先,你的命令中有多余的空格:

make CC=<HERE>'~/.vim/bundle/Clang_Complete-Pathogen/bin/cc_args.py' CXX='~/.vim/bundle/Clang_Complete-Pathogen/bin/cc_args.py'

你应该删除它。其次你的命令是错误的——你没有指定编译器。总而言之,它应该是这样的:

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

这是因为,本质上,cc_args.py将充当包装器(用于编译器可执行文件)来记录哪个 -I , -D , 以及其他标志在项目编译期间传递。然后它会巧妙地将所有标志转发给编译器本身 - 因此项目可以正确构建。调用 :h clang_complete-cc_args并查看 cc_args.py为了更好地理解 - 这是微不足道的。

注意: -B标志用于强制make构建,无论您当前的构建是否是最新的。这样,.clang_complete文件始终是最新的。

最后,如果终究还是不行,那就说明qmake生成 makefile这不尊重 CCCXX环境变量,而是编译器可执行文件的硬编码路径。我不记得 qmake 是否属于这种情况,但再一次,如果全部失败,那么这是唯一的原因 - 您可以通过检查生成的 makefile 轻松检查.

祝你好运。

关于c++ - 无法使用 clang_complete 完成 qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13782233/

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