如何用属性弱替换静态库中的符号

时间:2015-07-13 03:12:37

标签: c++ weak-symbol

假设我有这样的代码:

lib.h:

void func();

lib.cpp:

void __attribute__((weak)) func()
{
    printf("original");
}

这些代码将编译成libA.a

clang++ lib.cpp -o libA.a

然后在我的测试单元中,我想覆盖这个func函数,例如:

TEST.CPP:

#include "lib.h"
void func()
{
    printf("override");
}

clang++ test.cpp -lA

但在我的结果中,输出始终为original

weak静态lib函数的正确方法是什么,然后在外部覆盖它?

0 个答案:

没有答案