Как скомпилировать из gVim на Windows с GCC из Cygwin, а затем запустить программу? - PullRequest
1 голос
/ 19 сентября 2010

Я работал над этим все утро и до сих пор не могу найти способ легко связать ключ для компиляции моей программы из версии gVim для Windows с использованием Cygwin GCC, а затем запустить его.Я новичок в написании сценариев Bash, и я не смог заставить его создать .exe в домашнем каталоге (C: / cygwin / home) и затем запустить его.

То, что у меня пока есть:

map <F4> :call CompileRunGcc()<CR>
func! CompileRunGcc()
    exec "w"
    exec "!gcc /home/%:t && cd C:/cygwin/home && ./a.exe"
endfun

Это будет работать хорошо, за исключением того, что когда я иду в домашнюю директорию, a.exe там нет.Компиляция с использованием gcc из bash-скрипта .bat в cygwin работает нормально ... но не из gVim.

Спасибо за всю помощь заранее.

Ответы [ 3 ]

2 голосов
/ 19 сентября 2010

проверьте этот плагин .

, похоже, что вы хотите.Я не проверял это все же.

1 голос
/ 20 сентября 2010

Для проектов с монофайлами вам не нужен make-файл.Таким образом, пока gcc и make находятся в вашем $ PATH, и вы находитесь в каталоге, откуда поступает текущий исходный файл, вам просто нужно набрать:

:update
:make

Если ваша программа не имеетошибка, простой !./%< подойдет.В противном случае вам может потребоваться выполнить :copen, чтобы увидеть ошибки компиляции.Если у вас есть, вы заметите некоторые пути в формате * nix.К сожалению (g) vim-win32 не может их понять.То, о чем мой старый плагин компилятора cygwin рассказал вам о, вступает в игру.Для поддержки любой подобной компиляции программы (а не просто make) она превратилась в BuildToolsWrapper - для ее установки потребуется lh-vim-lib, и может быть несколько других моих плагинов (system_tools,searchinruntime).

С ним просто сделайте один раз :BTW add cygwin, прежде чем играть с :make или даже :Make, который определяет BTW.Эта новая команда выполнит команду :update! перед вызовом :make с автоматически определенной целью.Примечание: BTW отображает Make и выполнение текущего исполняемого файла проекта на <F7> и <C-F5>.

PS: если у вас есть несколько файлов в вашем проекте, определите Makefile и поиграйте с:make, вот и все.PPS: вас также может заинтересовать cyg-wrapper.sh , который помогает правильно открыть gvim-win32 из оболочки cygwin.

0 голосов
/ 19 сентября 2010

Обычно, когда запускается gcc, он создает двоичный файл прямо в рабочем каталоге. Если вы хотите поместить выходной двоичный файл в другой каталог, вы должны передать опции -o. Таким образом, команда должна быть одной из следующих:

exec "!gcc -o C:/cygwin/home/a.exe /home/%:t && cd C:/cygwin/home && ./a.exe"
exec "!cd C:/cygwin/home && gcc /home/%:t && ./a.exe"
...