Kha*_*sar 3 c gcc makefile gnu-make
我是C编程的新手,我想知道在Makefile中编写什么来编译单个.c文件.
说我有一个多.c一个文件夹中的文件),即sample1.c,sample2.c,sample3.c等等),我只是想编一个特定的文件名.我想只键入" make sample2",它将编译并调用一个输出sample2(几乎.c保持名称).
我已经阅读了几个解决方案,有人可能会提出这个建议,但没有成功.
SRC = $(shell find . -type f -name \*.c)
executable: $(SRC:.c=.o)
gcc -std=gnu99 $@ $^
Run Code Online (Sandbox Code Playgroud)
我需要做些什么来使它工作?
将评论转换为答案.
你不需要makefile为此:make sample2将编译sample2.c以创建程序sample2.
您可以使用您想要/dev/null的名称makefile(或者如果您需要忽略现有名称makefile):
make -f /dev/null sample2
Run Code Online (Sandbox Code Playgroud)
当然,这会使用默认选项进行编译.如果你想使用更严格的标志,那么你可以这样做(假设现有的makefile是可消耗的):
echo 'CFLAGS = -Wall -Wextra -Werror -std=c11 -O3 -g' > makefile
make sample2
Run Code Online (Sandbox Code Playgroud)
或该主题的一些变体,例如:
make -f /dev/null CFLAGS="-Wall -Wextra -Werror -std=c11 -O3 -g" sample2
Run Code Online (Sandbox Code Playgroud)
简而言之,make知道如何将单个C文件编译成相应名称的可执行文件(减去.c后缀),而无需任何显式makefile.如果需要,您可以调整它如何编译该文件.
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |