基于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还是动态库的方式发布,动态库对效率问题依然存在,似乎不会改善性能?
分享到:
相关推荐
上一篇分享了静态链接与动态链接的实验(Windows):C语言动态链接与静态链接。这一篇分享Linux下的笔记,同时对上一篇笔记做一个补充。 首先,我们把静态链接与动态链接做一个这样子的比喻: 把链接过程看做我们...
程序运的动态链接和静态链接的区别,可以看下。。
c++ 静态链接库 动态链接库示例 静态链接库 动态链接库示例
以上这篇浅谈CMake配置OpenCV 时静态链接与动态链接的选择就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:Android Studio中通过CMake使用NDK并编译...
介绍静态链接库和动态链接库作用和区别,制作静态库和动态库的方法,编程测试自己编写的两种库
详细介绍了静态链接库和动态链接库的创建和调用方法,其中动态链接库又分为加载时动态链接和运行时动态链接两种。附有程序进行说明~~
本文详细介绍了静态链接库与动态链接库的区别,适合于那些对二者概念分不清楚的同学,以及如何创建一个静态库和动态库的方法
详细描述C++动态链接库与静态链接库的创建以及原理,内附测试demo.
动态链接库和静态链接库区别,让你真正理解动态链接库和静态链接库的区别。
演示Qt静态链接库与动态链接库的创建与使用。环境:windows xp Qt4, MinGW编译器环境。供备忘和参考。
Linux C 静态链接库 动态链接库 简单介绍 看完本例子,可以入门了。。。。
详细地描述了动态链接与静态链接的区别 以及加载时链接和运行时链接的区别
动态链接和静态链接的详细描述,以及不同分支下的不同做法
静态加载动态链接库;LIB静态加载动态链接库
静态链接vs动态链接
动态链接库dll与静态链接库lib的详细解释 DLL调用的两种方式
本文描述了Linux下使用动态链接库和静态链接库的项目建立及单步调试
静态链接库与动态链接库的制作与使用
linux静态库和动态库的区别