最近,我使用 Linux 中的终端编写了更多代码,以更深入地了解编程。现在,我正在尝试使用以下命令自动执行编译过程:
find . -type f -mmin -1 -name "*.c" | gcc -o output.o -xc -
它基本上应该找到以 结尾的最新修改文件"*.c"
并进行编译。但是我总是得到以下错误:
<stdin>:1:1: error: expected identifier or ‘(’ before ‘.’ token
有人能帮助我并解释我做错了什么或给我展示另一种选择吗?
非常感谢,祝您有愉快的一天!
答案1
您正在管道姓名文件作为要编译的代码gcc
您可以将名称作为文件参数传递,而不是使用xargs
:
find . -type f -mmin -1 -name "*.c" | xargs gcc -o output.o -xc
然而,这项工作的“正确”工具确实是make
- 它将确定哪些目标比其先决条件更旧,并根据需要进行编译。