gpt4 book ai didi

ios - 库和项目中的类名相同

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:02:20 25 4
gpt4 key购买 nike

如果我的主项目中有一个名为 ClassA 的类,并且我有一个为静态库构建的子项目,那么在这个子项目中还有一个名为 ClassA 的类。我想知道我可以成功构建并运行,编译器如何区分这两个类?

最佳答案

我认为您在谈论链接器的工作原理。

静态库是几个后缀为“.o”的可重定位目标文件的集合。您项目中的源文件也被编译成可重定位的目标文件。

当链接器工作时,它将解析代码中使用的符号,如 ClassA。如果它在一个可重定位的目标文件中找到 - 让我们说 rof1.o,它会将 rof1.o 吸收到可执行文件中。当链接器尝试解析符号时,可重定位目标文件的搜索顺序决定了使用哪个 ClassA。由于搜索顺序对我们来说是不确定的,因此您应该使用不同的类名。

顺便说一句,如果您将其他链接标志设置为“-all_load”,这表明链接器将尝试将所有可重定位目标文件组合到可执行文件中。然后如果有两个或更多相同的符号,它会显示错误“重复的符号”。

关于ios - 库和项目中的类名相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337694/

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