警告我对C ++不熟悉。
当我编译程序时,我注意到为我拥有的每个类都创建了一个.obj。当我查看程序文件中的其他程序时,我意识到这些程序几乎没有任何.obj,因此我想我做错了。
另外,如果我从发行目录中删除了obj文件,并试图再次运行exe,但它仍然像以前一样正常工作,我知道这些文件不是毫无意义的,但是...
它们有什么用?是否应该为每个课程文件使用它们?-如果没有,我该如何解决?
编译时如何将它们放在一个名为obj的文件夹之类的目录中?
.obj
文件(.o
Linux / Unix上的文件)是已编译的源文件,每个.cpp
文件确实存在一个或更正式的“编译单元”。它们是在构建项目的编译阶段生成的。
.obj
然后,这些文件通过链接器组合到应用程序(通常.exe
是Windows上的文件)或库文件(在Windows上可以是.dll
动态库或.lib
静态库(基本上是一个.obj
文件的集合,打包成一个文件))。 , 见下文)。在类Unix平台上,应用程序通常不具有扩展名,而动态库具有.so
扩展名,而静态库具有.a
扩展名。
您看不到带有程序的.obj
文件或静态.lib
文件,因为在运行时不需要它们,它们仅由链接器使用。在运行构建项目的链接阶段时,链接器将所有需要的.obj
文件组合到.exe
和.dll
文件(或等效文件)中,供运行时使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句