16

viをオフにせずにcppファイルをコンパイルしたいと思います。:!g++ file.cpp
は知っていますが、 :makeの方が好きなので、この行を .vimrc ファイルに追加しました

au FileType C set makeprg=gcc\ %
au FileType Cpp set makeprg=g++\ %


しかし、 「make: ***** No targets specified and no makefile found. Stop.**」というメッセージが表示され続けます。
誰かが私の設定の何が問題なのか教えてもらえますか?
上記のオプションで正常にコンパイルするために使用します。

4

6 に答える 6

10

そこに置換が必要です。次のようなものを試してください:

set makeprg=gmake\ %:r.o

ああ、これはあなたが持っていることを前提としています:

  1. ディレクトリ内の (M|m)akefile、または
  2. お使いの環境でデフォルトの SUFFIX ルールを使用できます (存在しないようです)。

次のように入力して、デフォルトを確認します。

make -n <my_file>.o

そして、それがあなたに何か賢明なものを与えるかどうかを見てください.

別の場所に makefile がある場合は、-f オプションを追加して makefile を指すことができます。次に例を示します。

set makeprg=gmake\ -f\ ../some_other_dir/makefile\ %:r.o

ところで、make、特に gmake について学習するには、優れた本「Managing Projects with GNU Make」(サニタイズされた Amazon リンク) を参照することをお勧めします。

HTH。

乾杯

于 2009-02-12T10:28:48.220 に答える
6

C,Cppc,cppに変更すると、正常に動作します。

皆さん、特にロブ・ウェルズに感謝します。あなたの答えは私を大いに助けてくれました。ありがとうございました。

于 2009-02-13T01:00:06.237 に答える
5

Makefile を作成して、vi が見つけられる場所に配置すると、はるかに簡単になると思います。実際に vi を使用しているかどうかはわかりませんが (私は Vim しか使用していません)、Makefile がある場合、コンパイルは:makeと書くのと同じくらい簡単なはずです (セットの makeprg は必要ありません)。

于 2009-02-12T10:26:12.763 に答える
5

これは、キー マップを使用して簡単に実現できます。

最初にvimrcファイルとこれらの行をファイルに開き、

autocmd filetype cpp nnoremap <F4> :!g++ % -ggdb -o %:r <CR>
autocmd filetype cpp nnoremap<F5> :!g++ % -ggdb -o %:r && ./%:r <CR>

最初の行は、キー F4 をファイルのコンパイルにマップします。2 行目は、キー F5 をcompile and runにマップします。

gdb を頻繁に使用する場合は、これも便利です。

autocmd filetype cpp nnoremap<F10> :!g++ % -ggdb -o %:r && gdb -tui %:r <CR>

この行は、キー F10 をマップして、gdb をコンパイルして開始します

お役に立てれば。

于 2015-02-27T14:49:28.197 に答える
2

あなたが行ったことの代わりに、SingleCompile という vim プラグインをお勧めします: http://www.vim.org/scripts/script.php?script_id=3115

于 2010-10-19T17:19:39.037 に答える
-5

まず、血まみれのmakeファイルを作成します。そこにあるすべてのツールはmakeで動作することを期待しており、コンパイルが非常に単純な場合、すべてのcおよびcppファイルを実行可能ファイルにコンパイルするmakeファイルを作成するのに約30秒かかります。

次に、makeファイルの使用を拒否した場合は、

:help system

これにより、これに似た独自のコマンドを思い付くのに十分な情報が得られるはずです。

:com Mymake call system("g++ ".expand("%"))
于 2009-02-12T22:17:35.567 に答える