【发布时间】:2020-12-15 09:16:45
【问题描述】:
我一直在从事一个项目,该项目使用名为 winsock 的 windows 套接字库。目前,我可以开发或运行此代码的唯一方法是在安装了 C++ 扩展的 Visual Studio 中执行此操作。编译后的 exe 也只能在安装了 Visual Studio C++ 的计算机上运行。
#pragma comment(lib, "ws2_32.lib")
以上行在 Visual Studio 中用于链接代码和 winsock 库。
我的问题是这个。我希望能够将所有这些“捆绑”在一起,这样我就可以把这个项目交给没有 Visual Studio 的人。我在网上搜索了一下,但不确定这里的情况与我的情况相关。
谁能指导我的程序?
【问题讨论】:
-
如果您正在谈论分发,您需要make an installer 将其打包,尤其是对于可能没有该库的机器。如果您说的是其他人使用 Visual Studio,那么他们已经拥有该文件。
-
以
ws2_32.lib库为例,它不是一个完整的库,而是系统DLLws2_32.dll的配套库,每个Windows系统都应该有。.lib文件仅在链接我们的应用程序时使用,运行时从不需要这些文件。 -
您正在寻找的概念是静态链接。不幸的是,微软没有通过 winsock 库实现这一点。
-
@john 不必是静态链接的,尽管这是捆绑它的一种方式。您可以将其作为软件包的一部分安装。不幸的是,这就是为什么大多数 Windows 机器都拥有像 DirectX Runtime 这样的大量副本的原因。
-
我使用 Winsock,我不需要捆绑任何东西——它是操作系统的一部分。
标签: c++ windows visual-c++ winsock