OBJCOPY
HI ALL;
我怎么能用objcopy命令将.o文件中的某几个symble全局化, 其他的都本地化
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
HI ALL;
我怎么能用objcopy命令将.o文件中的某几个symble全局化, 其他的都本地化
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
-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里为什么会有重名?没想通
API函数名一样
LZ用的marvell的芯片还是broadcom的?
VITESSE的, L2 switch. 我现在对要用的进行再封装(每种芯片多一个再封状文件), 把那个再封状的文件和原来编一起. 每种芯片的生成一个.O. 那这样的话, 除了再封状文件倒出的全局符号是完全不同的. 原来API里的符号还是冲突的. 因为我已经再封状了下, 所以原来API中的全局符号在最后link的时候不用了(用了就冲突), 所以把他们都局部化.
不晓得还有没有什么办法来解决这种问题? 我觉得我这种办法做起来有点烦