Вы можете видеть, как команда compile
делает это. Поднимите текст справки для команды компиляции с помощью C-h f compile
, переместите курсор на имя файла, содержащего функцию, затем нажмите RETURN
. Это вызовет исходный файл для compile
.
По сути, существует динамическая / глобальная переменная compile-command
, которая содержит последнюю команду компиляции. Emacs - однопользовательская, однопоточная система, поэтому больше не нужно. Также имейте в виду, что Elisp - очень старый школьный Лисп, и переменные имеют динамический (стек вызовов), а не лексический охват. В такой системе естественно:
(let ((compile-command "gcc -o foo foo.c frobnicate.c"))
...
(compile)
...)
Говоря о команде compile
, вы пытались использовать ее вместо собственной функции run-rake
?