我想在按键上编译并运行单个 c 源文件,例如 <F5>
,现在我研究了几种实现此目的的方法,其中大多数涉及使用 Makefile。但是,我在通用 Makefile 上找到的每个示例都需要编辑 TARGET 或编译工作目录中的所有源文件。这让我想到了一个问题,即我是否可以运行正则表达式并从我正在处理的任何源文件中替换 Makefile 的第一行。
- 按
<F5>
- 用当前
<file>
更新根项目目录中的 Makefile .c 正在努力。 - 仅在
<file>
上运行 make
- 用当前
可能有一种更简单的方法可以在不编辑 Makefile 的情况下完成此操作,但我已经筋疲力尽地试图制作一个足够通用的 makefile 来完成它。
我的正则表达式会选择正确的行:
^TARGET\s[=]\s.*
最佳答案
您可以在您的项目目录中创建一个 .dir-locals.el
文件,内容如下:
((c-mode . ((eval . (setq-local compile-command
(format "gcc -std=c99 -Wall -Wextra -Wpedantic -Werror %s"
(shell-quote-argument (file-name-nondirectory
buffer-file-name))))))))
然后您只需将 compile
,它就会执行相应的操作。
让 compile
做“正确的事情”意味着无论何时需要编译(或执行任何模糊的类似事件,取决于当前项目发生的情况),您都可以在所有项目中始终使用相同的命令成为)。
关于c - 编译和运行任何单个 C 文件的最快方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47622649/