gpt4 book ai didi

编译器定义,将函数重定向到不同的名称

转载 作者:行者123 更新时间:2023-12-02 04:21:06 25 4
gpt4 key购买 nike

使用edk2(UEFI)时,memcpy、memset等函数不可用,但有CopyMem、SetMem函数。通常这不是什么大问题,但有时编译器会进行优化,用 memcpy/memset 替换我的代码,并且我会收到链接器错误,说我对它们有未解析的引用。据我所知,它们的使用本质上是相同的(相同的参数等等)。

我想知道如何解决这个问题,而不是在实例发生时单独处理它们。我尝试用谷歌搜索编译器宏,但找不到一个很好的例子来看看这是否是一个好方法。

最佳答案

如果编译器插入memcpy()memset()作为优化过程的一部分,那么使用宏将无法实现任何目标。您的机会是:

我。在每种情况下逐渐降低优化级别,直到链接器错误消失。

二.切换到符合标准的标准库

三.实现memcpy()memset()手动。

关于编译器定义,将函数重定向到不同的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16153641/

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