关键字:
linux gcc 加载不同so,存在同名符号:同名函数 同名全局变量
结论:
1、使多份全局变量共存的手段:编译时,gcc加选项:-Wl,-Bsymbolic
2、调用不同so中同名函数或全局变量的手段:dlopen + dlsym
文件func1.c
#include <stdio.h>
#include "func1.h"
int g_common_var = 1;
void func1()
{
printf("func1 g_common_var=1: %d\n", g_common_var);
}
void comm_func()
{
printf("comm_func g_common_var=1: %d\n", g_common_var);
}
func2:
#include <stdio.h>
#include "func2.h"
int g_common_var = 2;
void func2()
{
printf("func2 g_common_var=2: %d\n", g_common_var);
}
void</