2009-03-17 2 views
8

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

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

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

спасибо.

+2

Если вы действительно хотите научиться компилировать программы (или жить!) Без IDE - что, я думаю, здорово - я бы рекомендовал начать с чего-то, что НЕ является Windows, даже если вы планируете вернуться туда , –

ответ

4

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

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

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

Кроме того, увидеть этот вопрос: compile directly from vim

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

+1

NOOOooo ... избегать cygwin любой ценой. Он медленный, уродливый и действительно не имеет преимуществ перед родными приложениями для Windows. Если вы хотите использовать gcc и связанные с ними инструменты для окон, вам нужны «mingw» и «msys». В них есть и родная версия make. – davr

+0

Эй, я просто говорю. Я бы не знал, хорош ли Cygwin, я не использую Windows. знак равно –

1

edit1: несколько закладок, которые могут оказаться полезными:

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

Another one

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


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

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

Ну, это все. Только мои 0,2 евро :)

4

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

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

Для обучения сделать см manual

3

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

:!gcc file.c -o file 

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

:!gdb 

Я надеюсь, что это поможет.

1

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

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

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

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

2

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

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

Typicatlly, то 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 

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

0

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

http://pastebin.com/qc5Zp2P7

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

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

Смежные вопросы