Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
静态和动态;动态库创建:如何创建? 所以我为基于二叉树的数据结构,例如AVLS、红色BLUX、TEST等做了一些C++头文件,我想创建一个.LIB文件,我可以在任何时候使用更大的项目。我写的代码都是面向对象和模板化的。问题是,我所拥有的只是很多头文件(我在头文件中包含函数,因为我使用了模板,我想要最大的模块化),而没有源文件。我尝试在VisualC++中创建一个新的.LIB项目,但是它不产生任何没有源文件的.LIB文件,我不能在没有我愿意做的妥协的情况下创建。我看不到这个问题的任何解决方案,所以我可以获得一些关于如何继续的信息吗?谢谢 > p>如果您创建了一个库,其源代码完全由C++头组成 文件,这就是我们所说的仅头文件库。你不需要再做什么了 只头C++库是正常的。许多 只有标题。传统C++标准库的子集 因为传统上只有头球。当库接口包含 完全由模板组成,实现很可能在 写入头文件,在这种情况下,头文件就是库。1_C++_Shared Libraries_Static Libraries - Fatal编程技术网

静态和动态;动态库创建:如何创建? 所以我为基于二叉树的数据结构,例如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中包含目录选项或等效的项目设置

  • 您可以根据需要包含头文件

就这些

在MS Visual Studio上切牙可能会给您留下早期印象 一个库必须有一个
.lib
文件,但不清楚为什么会这样。 在MS Windows世界中,如果库是传统库,则情况就是如此 不是C++头文件库。(在Linux中,相应的情况也是如此 和其他操作系统,除了它们有其他的东西而不是
.lib
文件)。 传统的C或C++库是由两个头文件构建的,它们定义接口和单独的源文件, 这定义了它的实现。建立图书馆需要编译 将每个源文件转换为包含库实现一部分的目标文件, 然后以某种形式将所有这些对象文件打包在一起-动态 库或静态库-包含整个实现

因此,要重用传统库,我需要它的头文件,以便 可以在我的源代码中正确调用其接口;我需要你的帮助 包含其二进制实现的对象文件库包,以便 可以告诉链接器将我的对象文件与该包链接在一起 并生成完整的工作程序。库的
.lib
文件表示 链接器的对象文件包(尽管代表一件事) 对于静态库和与DLL完全不同的东西)

对于仅标头的库,根据定义,没有单独的源 定义部分实现的文件。因此没有单独的对象文件。 因此,没有单独的对象文件包。没有
.lib
。没有联系。没什么好担心的 要链接


[1] 专门提供模板接口的库很可能 只能使用模板实现,模板只包含 其接口的模板实现,在其头文件中。但什么都没有 阻止实现者编写实现的内部部分 对于非模板代码,如果他们看到这样做的决定性优势-大小优化, 可能在这种情况下,即使接口 都是模板。在没有反补贴考虑的情况下,自然 模板接口的实现是一个模板实现和
只有页眉的库是自然产物。

感谢您花时间编写如此深刻的指南。真的帮助了我!