c - 如何使用 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"
解决方案
如评论中所述,您已经可以做到
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”
推荐阅读
- python - 如何在odoo 12中生成报告(xlsx格式)和Qweb报告
- java - 从 Thinking in Java 执行 HelloDate
- sql-server - SQL Server 触发器在插入时未触发?
- python - Errno 13 权限被拒绝:当脚本在后端运行时尝试访问 CSV 文件时
- amazon-web-services - 使用 AWS Lambda (NodeJS) 创建 AWS AppSync
- javascript - 我正在使用 chart.js 我发送我的时间值将我的 api 作为时间戳知道我需要在图表中以日期格式显示它们
- angular - 在订阅 Observable 之前处理错误
- c - 在 C 中计算嵌套根
- api - 为什么我对 TDA API 的 API 调用没有返回刷新令牌?
- python - 即使删除最大 ID,Python SQLite3 auto_increment 也会正确增加