首页 > 学院 > 开发设计 > 正文

Mac下静态库和动态库的创建和使用

2019-11-08 01:02:12
字体:
来源:转载
供稿:网友

1.演示代码

add.cpp

int add(int a, int b){ return a + b;}

main.cpp

#include<stdio.h>int add(int a, int b);int main(){ PRintf("%d/n", add(1,2)); return 0;}

2.静态库

$ gcc -c -o add.o add.cpp$ ar -r libadd.a add.o$ gcc -o main -L. -ladd main.cpp$ ./main

3.动态库

$ gcc -shared -fPIC -o libadd.so add.cpp$ gcc -o main -L. -ladd main.cpp$ ./main

我对动态库的一个理解是: 第一次编译时需要libadd.so参与编译 而第一次编完后,如果main.cpp不改动,add.cpp改动,那么不需要重新编译整个main,只需要重新编译libadd.so,替换原来的libadd.so即可运行main。 4.备注 鉴于链接静态库和动态库的命令是一样的,系统会优先链接动态库。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表