linux 下C标准库是动态库还是静态库,还是两种库都提供了?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 下C标准库是动态库还是静态库,还是两种库都提供了?相关的知识,希望对你有一定的参考价值。
编了一些测试程序,感觉都静态和动态都能用,但是不是很确定,没有看到哪本书上明确这个问题。期待大神的解答。(静态库文件和动态库文件应该是都有的,不知道它们的内容是不是一样
看到大家的回答,感觉大家都没有回答我的提问。我的问题很简单,linux的C标准库是只有动态库还是动态库静态库都有。
静态库的代码在编译时就已经连接到开发人员的应用程序中了,动态库实在程序运行时才被加载由于动态库不包括库函数的实现代码,只是包含了对函数库的引用,所以程序代码规模比较小动态库的扩展名由.so.和版本号组成,静态链接库由.a。你测试的可能都不一样,实现代码,可能不一样。动态库一般都是做好了的,一般会比自己弄得静态库更好,当然功能都实现了,个人觉得不是很熟的时候还是用动态库吧。因为,假如你的静态库调用了很多次,在内存中,就会存在多个你调用部分的静态库实现代码,就重复了,浪费了内存,动态库在程序执行的时候在调用 参考技术A 编译器的默认设置是连接动态库,这就要求在程序执行的时候需要的动态库必须存在。改变编译选项可以变为静态连接,这样生成的程序运行时不需要库的支持,但是文件的尺寸一般较大。
linx的C标准库都有,看你自己喜欢哪样用哪样 参考技术B 两种库都有,我不认为他们内容有不同!本回答被提问者采纳
linux下intel的mkl编程代码,怎么样编译。C++和C语言代码
我安装了intel的mkl,但是知道怎么样调用命令运行程序。如果我的分别是.cpp文件和.c文件。怎么样在linux下运行。我知道c++的是g++ -g XXX.cpp -XXX ,那么加入mkl库函数怎么调用?还是-g吗?我用程序提供的例子都是错误的。求高手
参考技术A 是linux下编写C/C++无非就是使用两种类型函数库(动态库和静态库)首先mkl是动态库还是静态库?
静态库:
// 创建一个静态库
gcc -c func1.c func2.c
ar -rv libfunc.a func1.o func2.o
// 使用静态库,生成可执行文件test
gcc -o test test.c -L.-lfunc
动态库:
// 创建一个动态库
gcc -c func1.c func2.c
gcc -shared –o libtiger.so func1.o func2.o
// 使用动态库,生成可执行文件test
gcc -o test test.c -L.-ltiger
运行可执行文件
./test
这里使用的函数库是在当前路径下
-L.-l之间的
“.”代表当前路径,调用当前路径的 库
如果想调用mkl库,必须指出mkl库所在的路径
-L /lib/ -l库名 当然前提该库是路径在/lib/的
想要在linux下学习编程,建议把linux编程学好。
以上实在linux终端下实现本回答被提问者和网友采纳
以上是关于linux 下C标准库是动态库还是静态库,还是两种库都提供了?的主要内容,如果未能解决你的问题,请参考以下文章