我有一个包含目标文件的静态库,我想包装一个在一个目标文件中调用并在另一个目标文件中定义的函数,我正在尝试使用 Override a function call in C 中建议的方法使用gcc --wrap
选项。
假设我想重写一个函数getnamei()
,我创建了一个wrap.C文件并定义了__wrap__getnamei()
,然后编译它以获得一个目标文件,然后使用 --wrap
选项我可以覆盖该函数,但是当我尝试在wrap.C中使用__real__getnamei()
调用真实函数时,我得到“错误:“__real__getnamei() 未在此范围内声明”。
我在 Windows 7 上运行,使用 MinGW
最佳答案
我想通了,在wrap.C中我们需要添加一个带有extern "C"__real__getnamei()
的函数声明,然后一切正常!!
关于c - 包装来自静态库错误的函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15655285/