实现目标:main调用libmy_test.so,libmy_test.so调用libtest.a
源文件:main.c, my_test.c, test.c及相应.h
- 生成libtest.a
gcc -fPIC -c test.c
ar rcs libtest.a test.o - 由libtest.a生成libmy_test.so
gcc -shared -fPIC -o libmy_test.so my_test.c -L. -ltest - 由libmy_test.so生成main
gcc -o main main.c -L. -lmy_test - 注意事项
a. 生成test.o时以及编译.so时一定要加-fPIC
b. 如果源文件是cpp形,则用g++
c. 如果-ltest出现问题,可直接给出libtest.a
d. 执行时如果提示找不到.so,可使用
export LD_LIBRARY_PATH=$(pwd)

本文详细介绍如何通过GCC命令创建静态库(.a)与共享库(.so),并演示了如何在主程序中链接这些库进行使用。从源文件开始,逐步生成libtest.a静态库,再基于此静态库生成libmy_test.so共享库,并最终完成主程序main的构建。
713

被折叠的 条评论
为什么被折叠?



