我正在尝试使用clang_complete作为vim C ++完成。
我必须注意到我也在使用pathogen。
我采购了为clang-pathogen提供的vimball并将所有内容放在我的~/.vim/bundle/Clang_complete
目录中,一切都像魔术一样......
我的STL
和Boost
完成工作正常。
这是我做的:
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'.
答案 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
不尊重CC
和CXX
环境变量,而是很难编译器可执行文件的编码路径。我不记得qmake
是否属于这种情况,但如果一切都失败了,那么这就是唯一的原因 - 您可以通过检查生成的makefile
来轻松检查。