【发布时间】:2013-12-06 11:09:54
【问题描述】:
我有一个关于将 c 源文件编译成 obj 文件的问题。情况是:我从供应商那里得到了一些源代码,从供应商那里得到了一些库,也从供应商那里得到了一些 obj 文件。
供应商提供的makefile也是,它使用以下方式定义源:
${BUILD_LIB}_FILES += a.c \
b.c \
c.c
这三个c文件要先编译成obj文件,再生成lib文件。但是,例如,供应商没有向我发布c.c 文件,它只提供c.o 给我,这意味着我将首先将a.c 和b.c 编译成obj 文件,然后将它们与c.o 一起使用生成lib文件,但是如何通过makefile来完成?
混淆点在makefile中,它已经列出了c.c应该在编译过程中(它将c.c添加到变量${BUILD_LIB}_FILES),但是如果make可以找到有预构建c.o,它不会编译c.c(这意味着对于我的情况,无论有没有c.c,它都会成功编译),为什么?据我了解,gcc 应该编译所有已在该变量中列出的源文件。
【问题讨论】:
-
您的问题的答案取决于您必须显示的 makefile 的其他内容。