3

假设我有这样的代码:

lib.h:

void func();

lib.cpp:

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

这些代码将被编译成libA.a.

clang++ lib.cpp -o libA.a

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

测试.cpp:

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

和:

clang++ test.cpp -lA

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

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

4

0 回答 0