静态链接与动态链接

基于gmp开发第三方库,后者以动态链接库(静态库?)对方式发布,
为了效率gmp建议对该库采用静态链接,
所以,目的是生成静态链接gmp库的库文件(动态库?静态库?)

一、生成可执行文件
1. 动态链接库的编译
Mac和linux都是:
gcc -o param_convention1 param_convention.c -lgmp

2. 静态链接库的编译
Mac是:
gcc -o param_convention2 param_convention.c -Wl,-no_pie /usr/local/lib/libgmp.a

linux是:
gcc -o param_convention2 param_convention.c -static /usr/lib/x86_64-linux-gnu/libgmp.a


二、生成动态链接库
Mac是:
gcc -bundle -flat_namespace -undefined suppress -o pc.so pc.c -Wl,-no_pie /usr/local/lib/libgmp.a
或者
gcc -dynamiclib -current_version 1.0 -o libpc.dylib pc.c -Wl,-no_pie /usr/local/lib/libgmp.a

生成可执行文件
gcc -o main main.c ./libpc.dylib -Wl,-no_pie /usr/local/lib/libgmp.a

gcc -o main main.c -dynamic -L. -lpc -Wl,-no_pie /usr/local/lib/libgmp.a

Linux是:
gcc -fPIC -shared -o libpc.so
生成可执行文件
gcc -o main main.c ./libpc.so /usr/lib/x86_64-linux-gnu/libgmp.a

不过虽然gmp不是动态库了,但是libpc还是动态库的方式发布,动态库对效率问题依然存在,似乎不会改善性能?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值