Kompiluj bezpośrednio z Vima
Chciałbym skompilować plik cpp bez wyłączania vi.
Znam :!plik g++.cpp ale ja wolę : make więc dodałem ten wiersz w .plik vimrc
Au FileType C set makeprg=gcc\ %
au FileType Cpp set makeprg=g++\ %
But I keep getting
"make: * * * * * Nie określono żadnych celów i nie znaleziono pliku makefile. Przestań.** "wiadomość.
czy ktoś może mi powiedzieć, co jest nie tak z moim ustawieniem?
Używam do kompilacji z opcją powyżej.
6 answers
Potrzebujesz zastąpienia, spróbuj czegoś takiego:
set makeprg=gmake\ %:r.o
OH, to zakłada, że masz:
- A (M / M)akefile w katalogu, lub
- domyślne reguły przyrostków są dostępne dla Twojego środowiska (a wygląda na to, że ich nie ma)
Sprawdź wartość domyślną wpisując:
make -n <my_file>.o
I zobacz, czy to da ci coś sensownego.
Jeśli plik makefile znajduje się w innej lokalizacji, możesz dodać opcję-f, aby wskazać na plik makefile, dla przykład:
set makeprg=gmake\ -f\ ../some_other_dir/makefile\ %:r.o
BTW za poznanie make, a szczególnie gmake, proponuję zajrzeć do znakomitej książki " Managing Projects with GNU Make "().
HTH.
Cheers
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-12 10:35:38
Powinienem zmienić C, Cpp na C, cpp, wtedy będzie dobrze.
dziękuję wszystkim, szczególnie Rob Wells , twoja odpowiedź Bardzo mi pomogła. dziękuję.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-10 03:29:13
Myślę, że będzie o wiele łatwiej, jeśli napiszesz Makefile i umieścisz go tam, gdzie vi go znajdzie. Nie jestem pewien, czy faktycznie używasz vi (używałem tylko Vima), ale gdy istnieje plik Makefile kompilowanie powinno być tak proste, jak napisanie : make (nie jest potrzebny zestaw makeprg).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-12 10:26:12
Polecam wtyczkę Vim o nazwie SingleCompile zamiast tego, co zrobiłeś: http://www.vim.org/scripts/script.php?script_id=3115
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-19 17:19:39
Można go łatwo osiągnąć za pomocą kluczowych map.
Najpierw otwórz plik vimrc i te linie do pliku,
autocmd filetype cpp nnoremap <F4> :!g++ % -ggdb -o %:r <CR>
autocmd filetype cpp nnoremap<F5> :!g++ % -ggdb -o %:r && ./%:r <CR>
Pierwsza linia mapuje klucz F4 do kompilując plik . Druga linia mapuje klucz F5 do skompilować i uruchomić .
Jeśli często używasz gdb, może się to również przydać.
autocmd filetype cpp nnoremap<F10> :!g++ % -ggdb -o %:r && gdb -tui %:r <CR>
Ta linia mapuje klucz F10 do skompiluj i uruchom gdb
Mam nadzieję, że to pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-27 14:49:28
Po pierwsze, zrób ten cholerny plik. Każde narzędzie oczekuje pracy z make i jeśli Twoje Kompilacje są tak proste, potrzeba około 30 sekund, aby napisać plik make, który kompiluje wszystkie pliki C i cpp do pliku wykonywalnego.
Po drugie, jeśli odmówisz użycia pliku make, spróbuj
:help system
To powinno dać ci wystarczająco dużo informacji, aby wymyślić własną komendę podobną do tej
:com Mymake call system("g++ ".expand("%"))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-12 22:17:35