您的位置:首页 > 运维架构 > Linux

linux gcc使用静态库去编译生成动态库

2017-08-15 17:29 567 查看
实现目标: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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux gcc