1

clang_completeを vim C++ 補完として使用しようとしています。私も病原体を使用していることに注意する必要があります。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'.
4

1 に答える 1

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_argscc_args.py

注: -Bフラグはmake、現在のビルドが最新かどうかに関係なく、強制的にビルドするために使用されます。このように、.clang_completeファイルは常に最新です。

最後に、それでもうまくいかない場合は、環境変数を尊重せず、コンパイラ実行可能ファイルのハードコードされたパスを生成することを意味しますqmake。これが の場合であるかどうかは覚えていませんが、繰り返しますが、すべてが失敗した場合、これが唯一の理由です。これは、生成された を検査することで簡単に確認できます。makefileCCCXXqmakemakefile

幸運を。

于 2012-12-08T22:43:37.510 に答える