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

linux C 学习笔记(一):静态编译与动态编译

2017-08-28 14:45 316 查看
原有工程文件:test.c test.h

静态编译指令

生成可执行文件:

gcc -c test.c -o test.o


生成静态库:

ar rc libtest.a test.o


静态编译源文件:

gcc hello.c -o hello ./libtest.a


动态编译指令

生成动态库:

gcc -shared -fPIC -o libtest.so test.c


动态编译源文件:

gcc hello.c -o hello ./libtest.so


静态库与动态库区别

两者的区别其实很小,静态库是必须要链接到执行文件中去的,而动态库是不需要链接到最后的执行文件中的。怎么理解呢?也就是说,对于最后的执行文件而言,你是否删除静态库无所谓。但是,一旦你删除了动态库,最后的执行文件就玩不转了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 linux