gpt4 book ai didi

c++ - 为什么 C++ OBJ 文件很重要?

转载 作者:IT老高 更新时间:2023-10-28 22:16:34 25 4
gpt4 key购买 nike

请注意,我是 C++ 新手。

当我编译我的程序时,我注意到为我拥有的每个类都创建了一个 .obj。当我查看程序文件中的其他程序时,我意识到这些程序几乎没有任何 .obj,所以我想我做错了什么。

此外,如果我从发布目录中删除了 obj 文件并尝试再次运行 exe,它仍然可以正常工作,我知道这些文件不会毫无意义,但是...

它们有什么用?它应该为每个类文件制作它们吗? - 如果不是,我该如何解决?

我如何在编译时将它们放在一个目录中,例如一个名为 obj 的文件夹?

最佳答案

.obj 文件(Linux/Unix 上的.o 文件)是编译好的源文件,每个.cpp 确实会有一个文件,或更正式的“编译单元”。它们是在构建项目的编译阶段产生的。

这些 .obj 文件然后通过链接器组合到应用程序,通常是 Windows 上的 .exe 文件,或库文件,在 Windows 上可以是 .dll 用于动态库,或 .lib 用于静态库(基本上是 .obj 文件在一个文件中的集合,请参见以下)。在类Unix平台应用程序通常没有扩展名,动态库有.so扩展名,静态库有.a扩展名。

你看不到 .obj 文件或静态 .lib 文件与程序,因为它们在运行时不需要,它们仅由链接器使用。当您运行构建项目的链接阶段时,链接器会将所有需要的 .obj 文件组合成 .exe.dll 文件(或等效文件) ),在运行时使用。

关于c++ - 为什么 C++ OBJ 文件很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21140021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com