在 C++ 中需要什么库?

问题描述

文件只包含函数的声明,函数的实际实现在库中。如果他们不想共享源代码,他们可以共享 obj 文件。 当一个函数的实现也可以在另一个 C++ 文件中完成时,我们为什么要使用一个库?

解决方法

通常,一个库是几个翻译单元的集合。库存档只是将单独的目标文件捆绑到一个 blob 中的一种便捷方式。

除此之外,共享库还增加了在多个依赖项之间动态加载和共享常用库的能力,这是普通目标文件无法实现的。

,

通常用作其他开发人员实现的函数集合的库,并且可以由其他开发人员“作为一般使用”使用,还提供了最小化代码的好处,您还可以从库中获取函数并编辑实现根据您的需要。

,

正如其他人解释的那样,我想在其中添加更多内容,库为您提供跨多个系统的可重用性,无论它们是用哪种语言编写的,除非遵循相同的 ABI。例如,用 C 语言编写的库可以很容易地与 Rust 一起使用,只需用 Rust 语法包装相同的函数即可。

例如,C 中的函数具有此签名。

int return_num(int a);

如果我们用 Rust 编写它,它将以与 C 相同的方式进行交互。

extern "C" {
    fn return_num(x: i32) -> i32;
}