我的makefile
:
gcc -c src/uno.c src/uno.h -o src/uno.o
gcc: fatal error: cannot specify -o with -c, -S or -E with multiple files
如何创建包含多个文件的.o
文件?
答案 0 :(得分:9)
头文件(本例中为src/uno.h
)是从文件中引用的,不应在命令行上再次命名:
gcc -c src/uno.c -o src/uno.o
你可能必须使用-I
标志命名目录所在的目录。但是如果你的资源中有#include "uno.h"
,那么gcc就会找到该文件,因为它会在同一目录中搜索该文件,该目录也包含uno.c
。
您可以编译多个fils并将它们链接到一个二进制文件中,例如
gcc -o myApp myAppMain.c myAppUtil.c myAppStuff.c
但这意味着如果单个源发生更改,您将不得不重新编译所有内容,因为不保留中间对象。如果使用目标文件,则每个转换单元始终有一个编译器调用。
有一个预编译标头的功能,但在这种情况下,你只能 编译标头,而不是uno.c
文件。无论如何,这是非常先进的,所以你可能不需要它。