【发布时间】:2018-05-04 04:36:54
【问题描述】:
当我们创建一个静态库时,我们必须为客户端提供2个文件:
- .h 文件
- .lib 文件
但是,当我们创建动态库时,我们必须为客户端提供3个文件:
- .h 文件
- .lib 文件(又名导入文件)
- .dll 文件
据我所知,我无法构建一个客户端应用程序(例如控制台应用程序)
- 静态链接到动态库
- 动态链接静态库
问题
当我如下构建一个简单的控制台应用程序时,例如:
#include <iostream>
int main()
{
std::cout << "Hello World!";
return 0;
}
输出(在本例中为 .exe 文件)是独立的。 是不是说“所有c++标准库都是静态库”?
【问题讨论】:
-
请注意:DLL 是 Microsoft 的东西。其他操作系统不会那样做两个二进制文件库的舞蹈。共享库位于 .so 文件中,您可以链接到该文件。 (在这两种情况下,您都需要一个 .h 文件来告诉编译器库提供了什么)。
标签: c++