听说在 Linux 上用 gcc 编译多源文件时,gcc 会为每个源代码文件创建目标文件 *.o,所以只更改一个文件时不需要重新编译所有文件。我在 Win7 x64 上使用 MinGW,而 MinGW 不创建任何目标文件。
主程序
//main.c
#include "header.h"
int main(void)
{
Message();
return 0;
}
来源.c
//source.c
#include <stdio.h>
#include "header.h"
void Message()
{
printf("Hello World...\n");
}
头文件.h
//header.h
#ifndef HEADER_H
#define HEADER_H
#include <stdio.h>
void Message(void);
#endif
如果我将这些文件放在桌面上并使用命令编译:gcc main.c source.c -o program
我只会得到 program.exe,而不是任何 .obj 文件。