静态和动态;动态库创建:如何创建? 所以我为基于二叉树的数据结构,例如AVLS、红色BLUX、TEST等做了一些C++头文件,我想创建一个.LIB文件,我可以在任何时候使用更大的项目。我写的代码都是面向对象和模板化的。问题是,我所拥有的只是很多头文件(我在头文件中包含函数,因为我使用了模板,我想要最大的模块化),而没有源文件。我尝试在VisualC++中创建一个新的.LIB项目,但是它不产生任何没有源文件的.LIB文件,我不能在没有我愿意做的妥协的情况下创建。我看不到这个问题的任何解决方案,所以我可以获得一些关于如何继续的信息吗?谢谢 > p>如果您创建了一个库,其源代码完全由C++头组成 文件,这就是我们所说的仅头文件库。你不需要再做什么了 只头C++库是正常的。许多 只有标题。传统C++标准库的子集 因为传统上只有头球。当库接口包含 完全由模板组成,实现很可能在 写入头文件,在这种情况下,头文件就是库。1
是否希望模板库在其他项目中可重用?它已经 是要重用它,请执行以下操作:-静态和动态;动态库创建:如何创建? 所以我为基于二叉树的数据结构,例如AVLS、红色BLUX、TEST等做了一些C++头文件,我想创建一个.LIB文件,我可以在任何时候使用更大的项目。我写的代码都是面向对象和模板化的。问题是,我所拥有的只是很多头文件(我在头文件中包含函数,因为我使用了模板,我想要最大的模块化),而没有源文件。我尝试在VisualC++中创建一个新的.LIB项目,但是它不产生任何没有源文件的.LIB文件,我不能在没有我愿意做的妥协的情况下创建。我看不到这个问题的任何解决方案,所以我可以获得一些关于如何继续的信息吗?谢谢 > p>如果您创建了一个库,其源代码完全由C++头组成 文件,这就是我们所说的仅头文件库。你不需要再做什么了 只头C++库是正常的。许多 只有标题。传统C++标准库的子集 因为传统上只有头球。当库接口包含 完全由模板组成,实现很可能在 写入头文件,在这种情况下,头文件就是库。1,c++,shared-libraries,static-libraries,C++,Shared Libraries,Static Libraries,是否希望模板库在其他项目中可重用?它已经 是要重用它,请执行以下操作:- 您可以使用它的 在IDE中包含目录选项或等效的项目设置 您可以根据需要包含头文件 就这些 在MS Visual Studio上切牙可能会给您留下早期印象 一个库必须有一个.lib文件,但不清楚为什么会这样。 在MS Windows世界中,如果库是传统库,则情况就是如此 不是C++头文件库。(在Linux中,相应的情况也是如此 和其他操作系统,除了它们有其他的东西而不是.lib文件)。 传统的C或C++库是由两个头文件构
- 您可以使用它的 在IDE中包含目录选项或等效的项目设置
- 您可以根据需要包含头文件
.lib
文件,但不清楚为什么会这样。
在MS Windows世界中,如果库是传统库,则情况就是如此
不是C++头文件库。(在Linux中,相应的情况也是如此
和其他操作系统,除了它们有其他的东西而不是.lib
文件)。
传统的C或C++库是由两个头文件构建的,它们定义接口和单独的源文件,
这定义了它的实现。建立图书馆需要编译
将每个源文件转换为包含库实现一部分的目标文件,
然后以某种形式将所有这些对象文件打包在一起-动态
库或静态库-包含整个实现
因此,要重用传统库,我需要它的头文件,以便
可以在我的源代码中正确调用其接口;我需要你的帮助
包含其二进制实现的对象文件库包,以便
可以告诉链接器将我的对象文件与该包链接在一起
并生成完整的工作程序。库的.lib
文件表示
链接器的对象文件包(尽管代表一件事)
对于静态库和与DLL完全不同的东西)
对于仅标头的库,根据定义,没有单独的源
定义部分实现的文件。因此没有单独的对象文件。
因此,没有单独的对象文件包。没有.lib
。没有联系。没什么好担心的
要链接
[1] 专门提供模板接口的库很可能 只能使用模板实现,模板只包含 其接口的模板实现,在其头文件中。但什么都没有 阻止实现者编写实现的内部部分 对于非模板代码,如果他们看到这样做的决定性优势-大小优化, 可能在这种情况下,即使接口 都是模板。在没有反补贴考虑的情况下,自然 模板接口的实现是一个模板实现和
只有页眉的库是自然产物。感谢您花时间编写如此深刻的指南。真的帮助了我!