Попытка скомпилировать и отладить C ++ из Vim - PullRequest
9 голосов
/ 18 марта 2009

Я изучал C ++ и Allegro, используя Code :: Blocks в Windows XP, и недавно мне захотелось изучить Vim. Однако я понятия не имею, как скомпилировать программу «вручную» (т.е. без использования IDE).

Для компиляции из Vim я дошел до установки makeprg на gcc, но я понимаю, что мне также нужен make-файл. Что это такое и как мне написать один? Разве с make-файлом я могу использовать такие библиотеки, как Allegro?

Кроме того, мне очень понравился отладчик CB (я использую gdb). Можно ли сделать что-то подобное с Vim?

Спасибо.

Ответы [ 7 ]

4 голосов
/ 18 марта 2009

Посмотрите на MinGW . Я бы избегал Cygwin, если вам нужны только gcc и make. Вы будете хотеть и MinGW и MSYS. В MSYS есть порт make для Windows.

Если вас интересует больше Unix-файлов для командной строки Windows, я рекомендую CoreUtils .

Для изучения см. Руководство

4 голосов
/ 18 марта 2009

Вам не обязательно нужен Makefile, но это предпочтительный (и, возможно, самый разумный) способ компиляции кода в UNIX-подобных системах.

Я не знаю, есть ли в GNU Make порт Windows, но вы, вероятно, можете запустить его под Cygwin .

Чтобы узнать больше о GNU Make и Makefiles:

Также смотрите этот вопрос: скомпилируйте напрямую из vim

Обязательное редактирование: Я не использую Windows или Cygwin. Возможно, вы захотите воспользоваться советом эпохального волка в этом отделе.

3 голосов
/ 18 марта 2009

Я не разбираюсь в make-файлах и отладке, но знаю, что Vim позволяет вам многое Например, если вы хотите скомпилировать файл с помощью gcc, он не сильно отличается от обычного способа. В обычном режиме введите:

:!gcc file.c -o file

Фактически вы можете использовать (почти) каждую системную команду, просто добавив "!" перед вашей командой. GDB также работает с Vim

:!gdb

Надеюсь, это вам поможет.

2 голосов
/ 28 июля 2009

Чтобы интегрировать vim с devenv, вы можете использовать devenv из Visual Studio для завершения проекта в vim. Команда выглядит следующим образом:

Devenv SolutionName /build SolnConfigName [/project ProjName [/projectconfig ProjConfigName]]

Как правило, devenv должен находиться в C: \ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE. Установите его на путь окружения, чтобы он вызывался из vim. Нам также нужно заставить vim распознавать сообщения об ошибках, генерируемые утилитой сборки командной строки devenv. Просто вставьте следующие строки в ваш vimrc:

" Quickfix mode: command line devenv error format
au FileType cpp set makeprg=devenv.com\ /Build\ Debug\ *[SolutionName]*
au FileType cpp set errorformat=\ %#%f(%l)\ :\ %#%t%[A-z]%#\ %m

Тогда вы можете использовать: make для компиляции и сборки программы из vim.

1 голос
/ 18 марта 2009

Пока у вас установлен GNU-make (с cygwin или mingw под windows), вам не нужно писать make-файл для однофайловых проектов. Просто запустите :make из vim, и этого достаточно.

Если ваш проект состоит из нескольких файлов, то вам придется написать make-файл (или любой эквивалент для scons, aap, (b) jam, ant, ...), соответственно настроить &makeprg и наконец, позвоните :make от Vim. См. Соответствующую категорию в vimtips . Конечно, вы можете запустить компилятор так же, как и любой другой внешний инструмент, но вы упустили бы возможность перейти к строке (-ам) ошибки (-ей).

Примечание: если вы используете win32-версию vim и gcc-cygwin, вам нужно будет перевести полученные сообщения об ошибках. Я использовал для этой цели Perl-скрипт, теперь он является частью большего набора (все еще в стадии бета-версии)

Что касается вашего вопроса об отладке, это не может быть сделано из vim под окнами на данный момент. Единственный отладчик, который может быть интегрирован на данный момент, это gdb, но только под Linux; см. проект pyclewn (.sf.net).

1 голос
/ 18 марта 2009

РЕДАКТИРОВАТЬ1: Несколько закладок, которые могут оказаться полезными:

GNU make tutorial (этот использует gcc и make, поэтому он должен быть прямо в вашем переулке)

Еще один

Win-порт некоторых утилит GNU Can упоминал; Я лично пользуюсь ими, и у меня не было проблем с ними на платформе Windows.


Да, вы можете скомпилировать без make-файла. Если ваша программа проста (например, только один файл), вы можете скомпилировать ее, вызвав компилятор и указав имя программы в той же строке (не помню, как это происходит с gcc). Конечно, чтобы упростить задачу, это может быть сопоставлено с ключом в vim, поэтому вам не нужно переходить к командной строке и обратно.

Если вы работаете над большим проектом, который состоит из нескольких файлов и тому подобного, тогда полезен make-файл. Он будет «искать» в файлах, определять зависимости, включать их в сборку, возможно, помещать исходные файлы в один каталог, а полученный exe-файл - в другой и тому подобное. Так что это скорее система компоновки и построения, чем просто компиляция. Хотя GNU make, упомянутый в ответе Can Berk Guder, является популярным, существует множество других тэков для «сборки make-файлов» («makefile» стал типом синонима для такой операции) - здесь вы можете увидеть некоторые другие опции по этой ссылке . Благодаря своей роли в истории, vim имеет хорошую поддержку: make, но другие также могут быть легко использованы (на эту тему имеется множество текстов на VimWikia .

Ну вот и все. Просто мои 0,2 евро:)

0 голосов
/ 07 марта 2010

Я не уверен насчет отладки, но я знаю простой способ скомпилировать и запустить текущую программу, так как я написал для этого небольшой плагин vim.

http://pastebin.com/qc5Zp2P7

Предполагается, что вы используете компилятор g ++. Если нет, просто измените имя на используемый вами компилятор. Сохраните этот файл, где вы установили vim / ftplugin / cpp.vim

Чтобы скомпилировать и запустить текущую открытую программу, просто введите shift-e в режиме без редактирования.

...