не может завершить qt clang_complete

Я пытаюсь использовать clang_complete как завершение vim C ++.
Я должен отметить, что я использую патогенный микроорганизм тоже.
Я выбрал Vimball для Clang-патогена и положил все в свой ~/.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 / RAN qmake -project


3 / RAN qmake -o Makefile testFiles.pro


4 / RAN 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

Решение

Прежде всего, у вас есть лишние пробелы в вашей команде:

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,

Удачи.

1

Другие решения

Других решений пока нет …