0

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

4

1 回答 1

1

窗口构建

为了在 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 并选择 Build->Build libupnp.dll (F7) 在 build 目录中还有 VC8、VC9 和 VC10 文件夹,分别包含 Visual Studio 2005/2008/2010 的解决方案文件.

如果您使用较新的版本来构建 libupnp,例如 Visual Studio 2003 或更高版本,那么您需要重新构建 pthreads 包,以便它使用与 libupnp 相同的 VC 运行时来防止跨界运行时问题(请参阅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 库

于 2013-05-24T09:10:16.950 回答