我有一个包含目标文件的静态库,我想包装一个在一个目标文件中调用的函数,并在另一个目标文件中定义,我试图使用Override a function call in C中建议的方法使用gcc --wrap
选项。
假设我想覆盖一个函数getnamei()
,我创建了一个wrap.C文件并定义了__wrap__getnamei()
,然后编译它以获取一个目标文件,然后使用--wrap
选项我能够覆盖该函数,但是当我尝试在wrap.C中使用__real__getnamei()
调用实函数时,我得到“错误:'__ real__getnamei()未在此范围内声明'”。
我在Windows 7上运行,使用MinGW
答案 0 :(得分:0)
我想出来了,在wrap.C中我们需要用extern "C" __real__getnamei()
添加函数声明,然后一切正常!!