2016 - 2024

感恩一路有你

ios软件分发源码搭建教程手把手 risc-v架构为啥能开源?

浏览量:2208 时间:2023-03-22 11:24:04 作者:采采

risc-v架构为啥能开源?

RISC-V架构是开源的,因为它采用开源许可,所以其他开发者可以使用、修改和分发源代码,从而有效地促进其发展。

如何在linux平台生成静态链接库与动态链接库?

动态库和静态库

在Win下,动态库以。dll和静态库以。lib。

在Linux下,动态库文件以。静态库以。a.

在Mac下,动态库以。dylib和静态库以。a.

动态图书馆的利与弊

动态函数库在编译时并没有编译成目标代码,只有在你的程序执行相关函数时才会调用函数库中对应的函数,所以动态函数库生成的可执行文件比较小。因为函数库不是集成到你的程序中,而是在程序运行时动态应用和调用的,所以程序的运行环境中必须提供相应的库。动态函数库的改变不影响你的程序,升级动态函数库更方便。

当一个程序在运行时调用一个动态链接库函数时,操作系统首先查看所有正在运行的进程,看是否有人加载了这个库。有就直接用。如果没有,它将被加载。这样做的第一个好处是节省内存空间。动态调入意味着要等到需要的时候,而不是不管用不用都先放在内存里。

如果我想升级一些软件。如果升级位置在dll中,则软件的其他部分不需要重新编译链接。所以升级方便。

静态库的优点和缺点

静态函数库编译的文件比较大,因为整个函数库在编译的时候会集成到目标代码中,它的优势很明显,就是编译的执行程序不需要外部函数库的支持,因为使用的函数都已经编译好了。当然这也会是他的缺点,因为如果你的静态链接函数库发生了变化,那么你的程序就必须重新编译。

代码更加精简,因为不需要进行版本检查。

当程序被分发时,文件的数量很少,因为它是静态链接到源文件的。

仅编译库中使用的部分,而不是整个库。

生成的二进制文件会占用更多空间。

重复的库可能出现在多个进程中,浪费内存。

如果库内部更新,二进制文件需要重新编译。

Linu台的静态库

静态库的生成

静态库的链接

Linu台的动态库

动态库的生成

动态库的链接

Windows平台的静态库

静态库/MT的生成使用编译来创建多线程可执行文件。生成静态库lib。

静态库的链接。使用链接库在代码开头添加,第二行是链接库中要调用的函数:

2.把要调用的链接库的lib放到项目源代码中,进行编译。你不 编译时不需要动态链接库。在这里,将静态部件库编译成Exe,但是动态库dll没用。)

3.运行前将dll放在exe目录中。

Windows平台的动态库

动态库/MD的生成使用编译来创建多线程dll。生成动态库。

动态库的链接1,LoadLibrary(或者MFC的AfxLoadLibrary),加载动态库。

,获取要引入的函数,将符号名或标识号转换成DLL的内部地址。

(或MFC的AfxFreeLibrary),并释放动态链接库。

函数 静态库 文件 静态 动态

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。