前晚写了一段代码,用于测试Linux下典型的静态库和动态库对全局符号的不同处理.作为Linux C/CPP程序员,一般对静态库和动态库的使用都十分频繁,虽然也出现过静态库链接顺序导致符号无法解析的错误.但是大体理解静态库和动态库并不困难,但是真正理解静态库和动态库在链接和(或)加载过程中的原理,还是得深入阅读一些文档,写一些测试代码才能有直观的掌握.
        如果您对测试过程不太感兴趣(确实这个过程比较乏味),请跳跃到最后一段,直接看结论即可.
  
        给出测试代码(文末给出源码包,遵循GPL发布):
        6个源代码文件(test_d.c,test.h,test_lib.c,test_lib.h,test_o.c,test_s.c).
        1个Makefile(文末给出Makefile的内容,可以当作一个模板使用).
        生成1个动态库文件(libtest_d.so),1个静态库文件(libtest_s.a),3个可执行目标文件(test_lib_d,test_lib_s,test_lib_o).
        还有其他3个和源码文件(*.c)相对应的可重定位目标文件(*.o).
Tags:
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]