【问题标题】:Use Winsock without statically linking在没有静态链接的情况下使用 Winsock
【发布时间】:2014-03-19 16:48:39
【问题描述】:

我正在创建一个最终想与朋友一起使用的聊天应用程序。现在我使用 Winsock2 进行通信,但我注意到 lib 文件显着增加了 bin 大小。有什么方法可以在不静态链接的情况下使用 Winsock? .dll 文件已经包含了我需要的所有功能,那为什么我还需要 lib 文件呢?

更新

原来它与 sqlite 库有关。出于某种原因,它使我的 bin 大小增加了 900 kb,我将尝试以不同的方式进行操作。

【问题讨论】:

  • lib文件用于导入dll导出的符号,你的文件大小增加了多少?应该不会太多
  • 确保您查看的是 Release 版本而不是 Debug - Debug 二进制文件可能要大得多。

标签: c++ linker winsock winsock2


【解决方案1】:

AFAIK 没有静态 winsock 库。这意味着您没有通过链接 .lib 来合并库的代码,您实际上是在导入由 dll 导出的函数,我相信这正是您想要的。

您的文件的大小可能会略有增加,这仅在具有调试符号和许多其他便于调试的东西的调试版本中显着重要。

尝试发布版本,看看它是否缩小,也许其他调试信息使您的可执行文件膨胀。

【讨论】:

    【解决方案2】:

    您只能对 Winsock2 库进行动态链接。请记住,对于本机的每个 dll,都有 lib,用于获取导出符号。您正在动态链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多