这个问题可能是由于文件在编译时使用了相同的C库和内存布局而导致的。如果这些文件包含了相同的代码,那么它们将被编译成相同的目标文件,尽管它们可能具有不同的源文件名。
要避免这种情况,我们可以通过使用不同的编译选项来强制编译器为每个源文件生成独特的目标文件,即使它们包含相同的代码。例如,可以在编译命令后加上一个随机的标志:
gcc -c -DRANDOM_FLAG file1.c -o file1.o gcc -c -DRANDOM_FLAG file2.c -o file2.o
在这个例子中,编译器使用"-DRANDOM_FLAG"选项,这将导致它生成不同的目标文件。
更新后,现在可以对两个目标文件运行size命令并查看它们之间的差异:
size file1.o size file2.o
这些命令应该会显示两个文件的不同大小,即使它们包含相同的代码。
上一篇:不同文件使用不同的优化选项
下一篇:不同文件需要不同的优化选项