本文介绍了明确指定为LD符号位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
让我们假设我有以下的C code:
的extern INT F_1();
EXTERN INT G_1();EXTERN INT F_2();
EXTERN INT G_2();EXTERN INT F_3();
EXTERN INT G_3();INT主(INT ARGC,字符** argv的){
//使用F_1,F_2,这里F_3和G_1,G_2,G_3:
...
}
和我想用3种不同的库进行链接构建它: L1
, 12
, 13
- 假设他们每个人出口自己的˚F
和先按g
功能 - - 这样:
-
F_1
和G_1
将被解析为˚F
和先按g
从L1
分别为; -
F_2
和G_2
将被解析为˚F
和先按g
从12
分别为; -
F_3
和G_3
将被解析为˚F
和先按g
从13
分别。
这是可能用gcc和ld:
- 这是可能的,如果
L1
,12
,13
共享库(的.so )? - 这是可能的,如果
L1
,12
,13
是归档( .A )?
解决方案
objcopy把的 - 重新定义 - 均
选项是你的朋友:
Apply it to you libraries l1
, l2
, l3
. It should work both for .a and .so.
这篇关于明确指定为LD符号位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!