首页 > 解决方案 > 如何使用 Linux 终端编译带有变量名的 C 程序?

问题描述

有没有可能以比运行整个命令更有效的方式编译 C 程序的方法。

gcc -g -Wall file_name.c -o file_name.out

例如以这种方式使用 make 命令:make argument.c

我想让 make 命令运行这个命令gcc -g -Wall argument.c -o argument_no_extension.out

我试图学习 vim 但要编译程序我必须写下整个命令或必须使用箭头键再次运行它。但是 vs-code task.json 具有以下参数:

"gcc","-g", "${relativeFile}", "-o","${fileBasenameNoExtension}.out", "&&", "clear" , "&&" , "./${fileBasenameNoExtension}.out"

标签: clinuxmakefile

解决方案


如评论中所述,您已经可以做到

make file_name

如果有一个名为“file_name.c”的 C 源文件,它将使用默认构建规则(因此您甚至不需要 Makefile)构建一个名为“file_name”的可执行文件

如果您确实需要可执行文件具有 .out 扩展名,您可以创建一个看起来像这样的 Makefile

CFLAGS=-g -Wall

%.out: %.c
        $(CC) $(CFLAGS) -o $@ $^

这定义了一个规则,对于以“.out”结尾的任何内容,它将从相应的“.c”文件构建它。所以如果你输入

make file_name.out

如上所述,如果您有“file_name.c”,它将构建“file_name.out”


推荐阅读