我正在尝试使用VS2008在Windows上编译libupnp-1.6.17,但是发生了数百种语法错误。我从http://sourceforge.net/projects/pupnp/下载源代码
有人告诉我如何在Windows上编译libupnp吗?
最佳答案
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)
在构建目录中,还有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库