Как скомпилировать файл cpp непосредственно из редактора vim в Windows? - PullRequest
0 голосов
/ 03 апреля 2020

Я недавно установил редактор vim в моей операционной системе Windows. Я знаю только обычную процедуру, т. Е. Создание исходного файла в редакторе и запуск его из командной строки. Но я не совсем понимаю, как скомпилировать программу CPP непосредственно из редактора vim. когда я запускаю команду

:! g ++ hello. cpp -o hello

из командной строки vim, я получаю следующее сообщение

C: \ WINDOWS \ system32 \ cmd.exe / c (g ++ привет. cpp -o привет)

Нажмите любую клавишу, чтобы закрыть это окно ...

1 Ответ

1 голос
/ 03 апреля 2020

Я предполагаю, что ваша версия Vim windows версия, а не версия cygwin.

Сначала вам нужно установить компилятор и убедиться, что он находится в вашей переменной PATH.

Также прочитайте документация об окне быстрого исправления, поскольку это интегрированный vim способ компиляции. :!make или :!g++ ... - это не путь к go.

MSV C

Я не думаю, что это ваш компилятор, как я ожидаю, что у вас будет использовал Visual Studio в этом случае. В любом случае, IIR C, есть плагин компилятора msdev, который вы можете загрузить с помощью :compiler msdev, тогда вы сможете запустить :make.

Не стесняйтесь завершить мой ответ, если увидите ошибки.

g ++ через cygwin

Есть большое преимущество: gnumake настроен правильно: в консоли вы можете запустить make foo, а если у вас есть foo.cpp или foo.c и нет Makefile в текущем каталоге, это скомпилирует монофильный проект. Во всех случаях Makefile в порядке; и требуется с несколькими исходными файлами.

Большая проблема: имена путей не выражаются одинаково. Они должны быть переведены. Я предоставляю способ сделать это в моем плагине Build-Tools-Wrapper. Просто выполните :BTW add cygwin.

Затем из vim снова введите :make %<. Это будет преобразовано в :make foo (при условии, что вы редактируете foo.cpp), что означает make foo оболочку, что означает $CXX $CPPFLAGS $CXXFLAGS $LDFLAGS foo.cpp -o foo $LDLIBS (или что-то подобное).

Примечание: это означает параметры можно настроить с помощью: :let $CXXFLAGS = '-std=c++17 -Wall -Wextra'

Кстати, если у вас есть мой плагин build-tools-wrapper, вы можете выполнить напрямую :Make вместо :make %< или просто <F5> напрямую, IIR C.

g ++ - mingw

Хорошая новость: не нужно переводить имена путей

Плохая новость, gnumake настроен неправильно. Это означает, что в консоли make foo не будет работать. И, следовательно, это не будет работать с Vim.

На этот раз вам либо понадобится Makefile, либо вам нужно будет настроить 'makeprg'. Например, :let &makeprg = 'g++ -Wall -Wextra -std=c++17 -o %< %', а затем просто набрать :make.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...