最近遇到了好几次这样的问题:unresolved external symbol memset
但在程序体中又没有使用memset这个函数。第一次的时候mark掉一个while函数后不报错了,百思不得其解为什么while循环会和memset有关,但事情紧急,也就让它先过去了。今天又出现了,注释while循环已经无济于事,看来非得把它解决掉不可,就到网上搜索“edkii memset”,没想到还真有人遇到同样的问题:http://feishare.com/efimail/messages/20090320-0913-Re__EDK_DEV__Building_module_for_X64_generates_unresolved_references_to_memset_and_memcpy-_Gao__Liming_.html
从回复来看,应该是编译器在编译过程中自动优化,遇到结构体或者数组初始化的时候希望用它的memset,但EDKII又没有用compiler的lib,结果就出现这种问题。把代码中数组和结构体初始化的部分都找出来,改成主动用basememorylib里的setmem去初始化,就没有问题了!
EDKII中的memset
最新推荐文章于 2020-12-06 18:55:39 发布