компилировать непосредственно из vim
Я хотел бы скомпилировать cpp-файл без выключения vi.
Я знаю :!файл g++.cpp но я предпочитаю : make поэтому я добавил эту строку .файл vimrc
au FileType c set makeprg=gcc %
тип файла au Cpp set makeprg=g++ %
но я продолжаю получать
"make: * * * * * не указаны цели и не найден файл makefile. Остановка.** "сообщение.
кто-нибудь может сказать мне, что не так с моими настройками?
Я использую для успешной компиляции с помощью опции выше.
6 ответов
вам нужна замена есть, попробуйте что-то вроде:
set makeprg=gmake\ %:r.o
О, это предполагает, что у вас есть:
- A (M|m)akefile в каталоге или
- правила суффикса по умолчанию доступны для вашей среды (которой, похоже, нет)
проверьте значение по умолчанию, введя:
make -n <my_file>.o
и посмотрим, даст ли это вам что-то разумное.
Если есть Makefile в другом месте, вы можете добавить опция-f для указания на makefile, например:
set makeprg=gmake\ -f\ ../some_other_dir/makefile\ %:r.o
кстати для изучения make, и особенно gmake, я бы предложил взглянуть на отличную книгу "Управление проектами с GNU Make" (санированная ссылка Amazon).
HTH.
ура
Я должен изменить C, Cpp на c, cpp, тогда он работает нормально.
спасибо всем, особенно Роб Уэллс, ваш ответ очень помог мне. спасибо.
Я думаю, что это намного проще, если вы напишете файл Makefile и поместите его туда, где vi может его найти. Я не уверен, что вы действительно используете vi (я использовал только Vim), но когда есть компиляция Makefile должна быть такой же простой, как написание : make (не требуется набор makeprg).
Я рекомендую плагин vim под названием SingleCompile вместо того, что вы сделали: http://www.vim.org/scripts/script.php?script_id=3115
Это может быть легко достигнуто с помощью ключевых карт.
Сначала откройте файл vimrc и эти строки в файл,
autocmd filetype cpp nnoremap <F4> :!g++ % -ggdb -o %:r <CR>
autocmd filetype cpp nnoremap<F5> :!g++ % -ggdb -o %:r && ./%:r <CR>
первая строка отображает ключ F4 в компиляции файла. Вторая строка отображает ключ F5 в скомпилировать и запустить.
Если вы часто используете gdb, это также может пригодиться.
autocmd filetype cpp nnoremap<F10> :!g++ % -ggdb -o %:r && gdb -tui %:r <CR>
эта строка отображает ключ F10 в скомпилировать и запустить gdb
Надежда эта помощь.
прежде всего, просто сделайте кровавый файл make. Каждый инструмент там ожидает работы с make, и если ваши компиляции так просты, требуется около 30 секунд, чтобы написать файл make, который компилирует все файлы c и cpp в исполняемый файл.
во-вторых, если вы отказываетесь использовать файл make, попробуйте
:help system
Это должно дать вам достаточно информации, чтобы придумать свою собственную команду
:com Mymake call system("g++ ".expand("%"))