Я пытаюсь использовать 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'.
Прежде всего, у вас есть лишние пробелы в вашей команде:
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
,
Удачи.
Других решений пока нет …