【问题标题】:Compile libupnp on windows在 windows 上编译 libupnp
【发布时间】:2012-12-13 07:51:59
【问题描述】:

我正在尝试使用 VS2008 在 Windows 上编译 libupnp-1.6.17,但出现了数百个语法错误。我从http://sourceforge.net/projects/pupnp/下载源代码
有人告诉我如何在 windows 上编译 libupnp 吗?

【问题讨论】:

  • 您是否从 build/vc9 目录打开了解决方案?你得到什么编译错误?
  • 好吧,一个愚蠢的错误,现在我编译成功了,但是执行时,它显示缺少pthreadVC2.dll,然后我从pthreads文件夹中复制它,仍然错误:无法找到过程入口点inet_pton在 WS2_32.dll 上
  • inet_pton 至少需要 Windows Vista/Server 2008。你有什么操作系统 (msdn.microsoft.com/en-us/library/windows/desktop/…)?
  • XP,你的意思是libupnp不支持windows XP?
  • 正确。是时候升级了:)

标签: c++ upnp


【解决方案1】:

WINDOWS 构建

为了在 Windows 下构建 libupnp,需要 pthreads-w32 包。 您可以从以下位置下载自解压 ZIP 文件:

ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-2-7-0-release.exe 或者可能有更新的版本。

执行自解压存档并将 Pre-build.2 文件夹复制到 顶级源文件夹。 将 Pre-build.2 重命名为 pthreads。 使用 Visual C++ 6.0 打开提供的工作区 build\libupnp.dsw 并选择 构建->构建 libupnp.dll (F7) 在 build 目录中还有 VC8、VC9 和 VC10 文件夹,其中包含 Visual Studio 2005/2008/2010 的解决方案文件。

如果您使用较新的版本来构建 libupnp,例如 Visual Studio 2003 或更高版本, 那么您需要重新构建 pthreads 包,以便它使用相同的 VC 运行时 作为 libupnp 以防止跨界运行时问题 (见http://msdn.microsoft.com/en-us/library/ms235460%28v=VS.100%29.aspx)。 只需替换 Pre-build.2 文件夹中的文件(重命名为 pthreads 为 上面提到的)与新构建的版本。 如果您还使用更新版本的 pthreads-win32,那么您也应该 替换该目录结构中的头文件(显然)。

用于构建静态库而不是 DLL 以及使用静态 pthreads-w32 库以下开关需要另外定义:

UPNP_STATIC_LIB - 用于创建可静态链接的 UPnP 库 PTW32_STATIC_LIB - 用于使用静态 pthreads32 库

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-09
    • 2021-08-16
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2012-03-03
    相关资源
    最近更新 更多