Tag: 弱链接

如何在静态库中使用gcc链接强符号来覆盖弱符号?

我的问题可归纳如下: bar.c : #include void bar() { printf(“bar\n”); } main.c : #include void __attribute__((weak)) bar() { printf(“foo\n”); } int main() { bar(); return 0; } Makefile : all: gcc -c bar.c ar -rc libbar.a bar.o gcc main.c -L. -lbar 输出 : $ ./a.out foo 所以main.c中的弱符号栏不会被bar.c中的强符号覆盖,因为bar.c被链接到静态库libbar.a中的main.c. 我怎么能告诉gcc在libbar.a中使用强符号来覆盖main.c中的弱符号?