gpt4 book ai didi

c++ - 函数不是 .obj 文件的一部分吗?

转载 作者:行者123 更新时间:2023-11-28 07:59:09 25 4
gpt4 key购买 nike

根据我正在读的书说:
检查程序语法后,C++ 编译器创建 .obj 文件。接下来,编译器调用链接器,该链接器将 .obj 文件中的程序语句与一些函数(如 printf())组合在一起。

函数不是 .obj 文件的一部分吗?它们不是陈述句吗?
链接器与术语“静态链接”和“动态链接”有联系吗?

我知道动态链接是在运行时解析的,但根据这本书,链接器是在编译时调用的。

最佳答案

在您的 .cpp 中定义的函数存在于相应的 .obj 中。使用但未定义的函数(例如 printf 等标准库函数)不是它的一部分。链接器解决与其他 .obj 和库的引用。

  • 静态库只是.obj 的集合,链接器将提供所需符号的.obj 放入可执行文件中;

  • 动态库没有放在可执行文件中;可执行文件被标记为引用它们,并在可执行文件启动时找到它们。 (至少在它们的主要用途中,它们也可以用于插件,然后在进程需要它们时搜索它们)。

关于c++ - 函数不是 .obj 文件的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11955144/

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