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

时间:2013-03-27 09:19:14

标签: c function linker override

我有一个包含目标文件的静态库,我想包装一个在一个目标文件中调用的函数,并在另一个目标文件中定义,我试图使用Override a function call in C中建议的方法使用gcc --wrap选项。

假设我想覆盖一个函数getnamei(),我创建了一个wrap.C文件并定义了__wrap__getnamei(),然后编译它以获取一个目标文件,然后使用--wrap选项我能够覆盖该函数,但是当我尝试在wrap.C中使用__real__getnamei()调用实函数时,我得到“错误:'__ real__getnamei()未在此范围内声明'”。

我在Windows 7上运行,使用MinGW

1 个答案:

答案 0 :(得分:0)

我想出来了,在wrap.C中我们需要用extern "C" __real__getnamei()添加函数声明,然后一切正常!!