2007年2月25日星期日

Linux动态库实验-多重符号的定义

主要目的:
  • 对Linux下so动态库的编程中,内部符号是否可以允许多重定义。
  • 在Windows 的Dll中,如果一个符号没有导出,那么在进行链接的时候是不会引起错误的。
  • 当使用so动态库时会不会有这样的问题呢?
  • 测试重点:在库的static 和 extern 的定义问题
测试范围:
  • 变量
  • 函数
测试结果:
  • 所有没有使用static 定义的符号均被导出,可以被宿主程序进行调用
  • 当没有使用static 或者使用extern标识的导出符号与宿主程序中的符号定义一致时,动态库中的符号被宿主程序所替代,甚至包括在动态库内部的调用,例如:在动态库内有一个函数调用导出函数............
  • 很有趣,是否和多重继承很像哦