实现目标: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)