当前位置: 首页 > 知识库问答 >
问题:

在构建库之前选择选项

梅修贤
2023-03-14

我正准备在debian系统上构建加密库,尽管debian存储库通过apt get提供它们,但我想从源代码处这样做,以确保编译的库是最新的库,并且只使用某些选项进行构建。

默认的makefile被配置为构建一个静态库,发布build,我想根据自己的需要修改makefile,并在那里添加一些其他东西。

基本上,我只会将这些库用于学习,没有任何形式的发布程序,所以我的问题是我是否需要发布构建或调试来学习,而且我不确定构建共享库还是静态库来学习更好?

我想这个问题听起来很有趣,但是我不确定为什么我需要调试库来调试简单的程序?还是自行调试库?

共有1个答案

秦景同
2023-03-14

调试和发布库之间的区别是调试通常有更多的内部检查来确保您正确使用库,对应的是库也更重和更慢。这就是为什么发布构建是使用发布库完成的。

静态链接(复制):一个大的exe文件,更便于开发。您将使用的库的部分移动到二进制文件中。

动态链接(参考):一个小的exe文件加上一个或多个。所以/。dll文件。您的可执行文件使用对库的引用,因此使用相同库的X程序只引用库的相同实例。它不像静态链接那样复制代码。

 类似资料:
  • 2.3.1 块IF构造 a) 块IF的组成和执行 块IF的一般形式可写成: IF(逻辑表达式) THEN ← 块IF语句 块1 ← then块 ELSE 块2 ← else块 END IF 块IF语句不是一个单独语句。块IF语句、ELSE语句和ENDIF语句只能用在块IF中而不能单独使用,它们必须和块IF中其它语句联系起来共同起作用。可以说一个块IF是一个语句块(决不能只包括一个语句),用来实现选

  • 今天,我们通过一个游戏来学习选择结构,游戏的地址如下: https://blockly-games.appspot.com/bird?lang=en 本游戏分为10关:主要游戏规则如下: ①主界面是游戏的运行界面,我们需要通过控制代码来让鸟叼完虫子后回到鸟窝,并保证不撞到墙。 ②代码主要由选择结构和逻辑判断组成。 ③点击下方的Run Program按钮后程序就会执行右侧的代码。回到鸟窝后,游戏结束

  • 我无法找到一种方法来创建一个输入字段在Flutter将打开一个下拉的名字列表。Flutter material Widgets可能吗? 就像这样

  • 每次选择完就会自动收起 试了很多配置项都不行 大佬们遇到过这种问题吗

  • select 是 Go 中的一个控制结构,类似于 switch 语句,用于处理异步 IO 操作 如果有多个case都可以运行,select 会随机选出一个执行,其他不会执行。 如果没有可运行的case语句,且有 default 语句,那么就会执行 default 的动作。 如果没有可运行的case语句,且没有 default 语句,select 将阻塞,直到某个 case 通信可以运行 sele

  • 和 C 语言不同的的是 和if一样,表达式前面可以添加初始化语句 和if一样,不需要编写圆括号 和if一样,左大括号必须和表达式在同一行 case 表达式的值不一定要是常量,甚至可以不用传递 一个 case 后面可以有多个表达式,满足其中一个就算匹配 case 后面不需要添加 break 可以在 case 语句块最后添加 fallthrough,实现 case 穿透 case 后面定义变量不需要添