gpt4 book ai didi

macos - 我如何告诉链接器使用方法的多个实现中的哪一个?

转载 作者:行者123 更新时间:2023-12-01 10:19:52 25 4
gpt4 key购买 nike

我使用一个工具生成了一个 111k 行长的 C++ 类实现。它生成的方法可以正常工作,但它们往往会在它们使用的 API 中触发缓慢的路径。

有没有什么办法,在 Mac OS X 上使用 Clang,我可以在不同的源文件中手动实现一些最常用的方法,并告诉链接器(或任何其他相关程序)忽略工具生成的方法是否存在该方法的另一个实现?

我可以完全控制该工具的输出,尽管很难自动生成更好的代码。

最佳答案

如果代码在库中交付,则链接器会搜索连续库中的 .o 文件,直到满足所有未解析的符号为止。因此,如果您的代码生成可以确保将弱代码分离到不同的 .cpp 文件中,那么您可以在链接路径上的较早的 .a 中交付自定义编写的版本,该版本将在代码生成提供的 .a 之前使用。

或者,如果您可以在代码中添加一个错误的模板,那么您可以为代码指定一个明确的特化。这将由编译器/链接器使用,因为它是一个特定的特化。

关于macos - 我如何告诉链接器使用方法的多个实现中的哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31632838/

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