Для написания программы на C++ использую vim. Для компиляции выхожу из vim и запускаю следующий скрипт
hello.sh
#!/bin/sh
export LD_LIBRARY_PATH=/usr/local/lib
echo `pkg-config --cflags opencv`
echo `pkg-config --libs opencv`
g++ `pkg-config --cflags opencv` -g -o hello hello.cpp `pkg-config --libs opencv`
Выполнение программы.
./hello
Зная о возможностях Vim, хотелось бы вызывать компиляцию и выполнение по нажатию на горячую клавишу.
Также буду благодарен, если подскажете как данный скрипт переделать в makefile.
vim компиляция программы на С++ (настроить горячие клавиши)
Модератор: /dev/random
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: vim компиляция программы на С++
См. разделы справки
:help :!
и
:help :map
См. также в качестве образца это сообщение: Тонкая настройка vim
:help :!
и
:help :map
См. также в качестве образца это сообщение: Тонкая настройка vim
Re: vim компиляция программы на С++
Попробовал в vim набрать
:! hello.sh
/bin/bash: hello.sh: command not found
shell returned 127
Press ENTER or type command to continue
Что я делаю не так?
Пробую сделать makefile
LIBPATH=-L/usr/local/lib
hello: hello.cpp
g++ `pkg-config --cflags opencv` $(LIBPATH) `pkg-config --libs opencv` o hello hello.cpp
Выполняю make
Получаю
g++ `pkg-config --cflags opencv` -L/usr/local/lib `pkg-config --libs opencv` o hello hello.cpp
g++: o: No such file or directory
g++: hello: No such file or directory
make: *** [hello] Error 1
:! hello.sh
/bin/bash: hello.sh: command not found
shell returned 127
Press ENTER or type command to continue
Что я делаю не так?
Пробую сделать makefile
LIBPATH=-L/usr/local/lib
hello: hello.cpp
g++ `pkg-config --cflags opencv` $(LIBPATH) `pkg-config --libs opencv` o hello hello.cpp
Выполняю make
Получаю
g++ `pkg-config --cflags opencv` -L/usr/local/lib `pkg-config --libs opencv` o hello hello.cpp
g++: o: No such file or directory
g++: hello: No such file or directory
make: *** [hello] Error 1
Re: vim компиляция программы на С++
C makefile разобрался.
hello: hello.cpp
$(CXX) $^ -o $@ `pkg-config --cflags --libs opencv`
hello: hello.cpp
$(CXX) $^ -o $@ `pkg-config --cflags --libs opencv`
Re: vim компиляция программы на С++
если что.. правила который действуют для запуска команд в шелле продолжают действовать и здесь, то есть или /path/to/hello.sh или ./hello.sh или текущую директорию в PATH