LINUX下GCC的动态与静态编译假设当前⽬录下有⽂件:
hello.h
hello.c
main.c
其中hello.h为头⽂件,hello.c实现头⽂件中声明的函数,main.c为主程序,调⽤了头⽂件中的函数。
linux下gcc编译的四个步骤动态编译:
1.⽣成.so动态库⽂件
gcc -fpic -shared hello.c -o libhello.so
2.加载动态库⽣成可执⾏⽂件
gcc main.c libhello.so -o main
3.可能会报错不到.so⽂件。有⼏种解决⽅法,这⾥采⽤把动态库复制到/lib/⽬录下
cp libhello.so /lib/
静态编译:
1.⽣成.o⽂件
gcc -c hello.c
2.⽣成静态库⽂件
ar -r libhello.a hello.o
3.⽣成可执⾏⽂件
gcc main.c -static libhello.a -o main
-fpic表⽰⽣成位置独⽴的代码
-shared表⽰⽣成动态库
-static表⽰⽣成静态库
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论