读书人

关于静态库和动态库的链接有关问题

发布时间: 2012-04-19 14:36:43 作者: rapoo

关于静态库和动态库的链接问题
看到的一道笔试题,如下关于链接的说法错误的是()
A.一个静态库中不能包含两个同名全局函数的定义
B.一个动态库中不能包含两个同名全局函数的定义
C.如果两个静态库都包含一个同名全局函数,他们不能同时被链接
D.如果两个动态库都包含一个同名全局函数,他们不能同时被链接


[解决办法]
稍微修改了一下

[root@localhost test]# cat a.c
int a=1;

[root@localhost test]# cat b.c
int a=2;


[root@localhost test]# gcc -shared a.c -o a.so

[root@localhost test]# gcc -shared b.c -o b.so

[root@localhost test]# gcc main.c b.so a.so


[root@localhost test]# ./a.out
a:2

[解决办法]
我选择D

C/C++ code
h1=dlopen("libfoo.so")foo_function1=dlsym(h1,"function1")h2=dlopen("libbar.so")bar_function1=dlsym(h2,"function1") 

读书人网 >C++

热点推荐