[英]cannot complete qt with clang_complete
我正在尝试使用clang_complete作为vim C ++完成。 我必须注意,我也在使用病原体 。 我采购了为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'.
首先,您的命令中有多余的空格:
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
, cc_args.py
将充当包装器(对于编译器可执行文件),以记录在项目编译期间传递了哪些-I
, -D
和其他标志。 然后它将巧妙地将所有标志转发给编译器本身-这样就可以正确构建项目。 调用:h clang_complete-cc_args
并查看cc_args.py
以获得更好的理解-这很简单。
注意: -B
标志用于强制make
进行构建,而不管您当前的构建是否是最新的。 这样, .clang_complete
文件始终是最新的。
最后,如果毕竟它仍然不起作用,则意味着qmake
生成的makefile
不遵循CC
和CXX
环境变量,而是遵循编译器可执行文件的硬编码路径。 我不记得qmake
是否是这种情况,但是再次,如果全部失败,那么这是唯一的原因-您可以通过检查生成的makefile
轻松检查。
祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.