我正在尝试使用VS2008在Windows上编译libupnp-1.6.17,但发生了数百个语法错误。我从http://sourceforge.net/projects/pupnp/下载源代码 谁能告诉我如何在windows上编译libupnp?
答案 0 :(得分:2)
WINDOWS BUILD
为了在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->构建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 as 上面提到的)与新建版本。 如果您还使用较新版本的pthreads-win32,那么您也应该这样做 替换该目录结构中的头文件(显然)。
用于构建静态库而不是DLL并使用静态 需要另外定义pthreads-w32库以下开关:
UPNP_STATIC_LIB - 用于创建可静态链接的UPnP库 PTW32_STATIC_LIB - 用于使用静态pthreads32库