Rap*_*ner 9 c macos terminal makefile
我最近买了一台Macbook Pro,我想用终端在C中做一些编码.
我可以用这个命令编译代码:
gcc filename.c –o filename
Run Code Online (Sandbox Code Playgroud)
但我想用make命令编译它,因为我知道这是最佳实践,我想遵循最佳实践.
make filename cc filename.c -o filename
Run Code Online (Sandbox Code Playgroud)
这个命令给我以下输出:
make: Nothing to be done for `ex01'.
make: *** No rule to make target `cc'. Stop.
Run Code Online (Sandbox Code Playgroud)
请注意,我已经安装了Xcode和Xcode开发人员命令行工具,在/ usr/bin文件夹中,我看到了make和makefile属性.
有没有人有任何提示我应该怎么做才能用makefile和cc参数编译?
Dav*_*eri 14
Makefile
使用此内容创建在同一路径上调用的文件:
CC = cc
CFLAGS = -std=c99 -pedantic -Wall
OBJECTS = filename.o
all: appname
filename.o: filename.c
$(CC) $(CFLAGS) -c filename.c
appname: $(OBJECTS)
$(CC) $(OBJECTS) -o appname
clean:
rm -f *.o appname
Run Code Online (Sandbox Code Playgroud)
然后运行:
make
Run Code Online (Sandbox Code Playgroud)
当然,请替换appname
为您的程序名称
注意:之前必须有"标签"(不是空格)
$(CC) $(CFLAGS) -c filename.c
Run Code Online (Sandbox Code Playgroud)
和
$(CC) $(OBJECTS) -o appname
Run Code Online (Sandbox Code Playgroud)
小智 5
我正在按照相同的教程,遇到类似的问题.
我不知道你究竟做了什么,但我认为错误是错误的命令.你键入了make filename cc filename.c -o filename
,但教程指示我们使用make filename
,没有cc filename.c -o filename
部分.也许你读过一个旧版本?
并且,make filename
工作正常,您不需要Makefile.
仅供参考,以下是我遇到问题以及如何解决问题的方法:
键入下面的代码,并将其保存在名为"ex1"的文件中
int main(int argc, char *argv[])
{
puts("Hello world.");
return 0;
}
Run Code Online (Sandbox Code Playgroud)make ex1
终端make: Nothing to be done for 'ex1'.
如您所见,我的错误是源代码的文件名应该是ex1.c,而不是ex1.
当我将文件名更改为ex1.c并执行时make ex1
,它工作正常.
归档时间: |
|
查看次数: |
49504 次 |
最近记录: |