Каков наиболее эффективный способ запуска программ в Emacs после компиляции M-x? - PullRequest
4 голосов
/ 26 марта 2010

Я начал использовать M-x compile для компиляции программ, скажем, C.

Каков наиболее эффективный способ запуска исполняемого файла, например a.out. На данный момент я использую M-! ./a.out. В принципе, какова наилучшая процедура запуска кода, которую нужно выполнить?

Практически во всех руководствах упоминается, как выполняется компиляция, но я не видел ни одного, который решает эту проблему?

Спасибо, Samuel

Ответы [ 4 ]

3 голосов
/ 26 марта 2010

Я использую расширение smart-compile + , оно позволяет указать довольно удобные правила в зависимости от имени файла / буфера, который вы редактируете. Например, в моем .emacs я указываю следующее правило при запуске smart-compile в файле проекта euler:

(add-to-list 'smart-compile-alist
         '("euler.*\\.[Cc]+[Pp]*$" . "g++ -O2 -Wall -pedantic -Werror -Wreturn-type %f -lm -lgmpxx -lgmp -o ../bin/%n && time ../bin/%n")
         )

Сначала вы указываете шаблон имени файла для правила, затем путь, где оно должно быть выполнено, затем команда компиляции. В приведенном выше случае я добавляю && time ../bin/%n для запуска программы сразу после ее успешной компиляции.

3 голосов
/ 26 марта 2010

Я часто просто добавляю команду запуска в конце сборки:

M-x compile RET gmake && ./a.out

&& заставит оболочку вызывать a.out только после успешной компиляции.

Хотя я часто запускаю программу из существующего буфера оболочки ( M-x shell ) или из одной из многих оболочек, которыми я управляю с пакетом, очень похоже на screen .

0 голосов
/ 07 мая 2010

Добавьте правило в ваш make-файл для компиляции и запустите вашу программу, поэтому Mx compile скомпилирует и запустит, протестирует, valgrind-test ... что угодно

0 голосов
/ 27 марта 2010

Мой первый выбор для интерактивной разработки; код, загрузите файлы в REPL, устраните ошибки (с помощью C-x `, как с M-x compile), а затем поиграйтесь с кодом в REPL.

Если это не вариант, я использую eshell в качестве универсального REPL. Скомпилируйте, переключитесь на eshell, запустите, протестируйте, повторите.

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