无法用clang_complete完成qt

时间:2012-12-08 21:42:52

标签: c++ qt vim clang code-completion

我正在尝试使用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'.

1 个答案:

答案 0 :(得分:1)

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

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来轻松检查。

祝你好运。