当我编译我的C程序时,我得到了为每个目标文件临时创建的某些文件。这些临时文件的标题为utilities.o-fb62414b
等(即something.o-suffix
,其中'某些内容是我的目标文件,后缀是字母数字字符)。我无法在任何地方找到这些临时文件的描述。在编译完成后ls
并且它们不仅仅是*.o
文件时,它们不存在。如果我在编译时观察(或者在编译时从另一个终端执行ls
),它们只会在窗口中短暂弹出。
我使用的编辑选项是-Wall -fmessage-length=0 -pg -O3
。
我还使用gsl
库。我在Macbook Pro(10.12.6)上使用gcc
进行编译和链接。
有关这些临时文件的帮助吗?
答案 0 :(得分:0)
编译和链接程序时如下:
gcc -o hellow hello_world.c
您使用的是GCC有助于扩展到必要编译的简写 步骤和链接步骤,就像你已经完成:
gcc -c -o hello_world.o hello_world.c # compile
gcc -o hellow hello_world.o # link
rm hello_world.o # Delete the intermediate object file
但由于速记没有为中间对象指定任何名称
在编译步骤中的文件(如-o hello_world.o
),GCC生成一个临时文件
写入目标文件的文件名。这就是你所看到的。
在Mac OS上,gcc
默认为clang
的别名。铛
在这方面表现得像真正的GCC(虽然是临时文件名
它生成符合真实GCC的不同模板。事实
他们在MacBook上没有.o
扩展名并不重要:一个对象
file是一个目标文件,无论扩展名如何,链接器都会识别
就这样。