OBJCOPY
HI ALL;我怎么能用objcopy命令将.o文件中的某几个symble全局化, 其他的都本地化 -G -G 只是将某一个全局化, 其他的都局部
-G --keep-global-symbol <name> Localize all symbols except <name> 你不知道-G xx -Gxx -G xx.....
几个连一起啊 谢谢
我碰到的问题是这样的。 现在在我们的一个系列的L3交换机中用了两快不同的L2 switch芯片。但是我们的一个系列的交换机用的是一个image,这样就产生了这样一个问题:在我们的这一个image中需要同时支持这样两种L2 switch芯片。我们用了他们厂商的API,用这套API靠不同的宏来编译不同的l2 switch 的驱动(所以有N多的函数重名)。 以前我们只用了一种l2 switch,把他编成了一个静态库. 现在显然不能再编成两个静态库(用的是C)。现在我的想法是做个对不同芯片的driver在封装。 编成一个.o 然后把里面的重名的全局符号变成局部的, 最后再链接。
不知道解决这种情况时候有更好的办法,谢谢。 干什么用想着用一个o文件?两个o文件不是挺好吗? 没个芯片一个.o 但是这些.o里是有重名的. 所以用objcopy局部化我不想导出的符号. o里为什么会有重名?没想通 原帖由 cjaizss 于 2008-5-7 13:55 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
o里为什么会有重名?没想通
API函数名一样
LZ用的marvell的芯片还是broadcom的? VITESSE的, L2 switch. 我现在对要用的进行再封装(每种芯片多一个再封状文件),把那个再封状的文件和原来编一起. 每种芯片的生成一个.O. 那这样的话, 除了再封状文件倒出的全局符号是完全不同的. 原来API里的符号还是冲突的. 因为我已经再封状了下, 所以原来API中的全局符号在最后link的时候不用了(用了就冲突), 所以把他们都局部化.
不晓得还有没有什么办法来解决这种问题? 我觉得我这种办法做起来有点烦
页:
[1]
2