从静态库错误包装函数调用



我有一个包含对象文件的静态库,我想包装一个在一个对象文件中调用的函数,并在另一个对象文件中定义,我试图使用gcc --wrap选项在C中覆盖函数调用中建议的方法。

假设我想要覆盖一个函数getnamei(),我创建了一个wrap.C文件并定义了__wrap__getnamei(),然后将其编译为一个对象文件,然后使用--wrap选项我能够覆盖该函数,但是当我尝试在wrap.C中调用__real__getnamei()的实际函数时,我得到"错误:'__real__getnamei()未在此范围内声明'"。

我在Windows 7上运行,使用MinGW

我弄清楚了,在wrap.C中,我们需要添加extern "C" __real__getnamei()的函数声明,然后一切正常工作!!

最新更新