2012-12-13 134 views
0

我想在VS2008的windows上编译libupnp-1.6.17,但是发生了数百个语法错误。我从http://sourceforge.net/projects/pupnp/下载源代码
任何人告诉我如何在Windows上编译libupnp?在windows上编译libupnp

+0

您是否从build/vc9目录打开解决方案?你会得到什么编译错误? – fritzone

+0

好吧,一个愚蠢的错误,现在我编译成功,但执行时,它显示缺少pthreadVC2.dll,然后我从pthreads文件夹复制它,仍然错误:无法找到过程入口点inet_pton上WS2_32.dll – Wythe

+0

inet_pton需要至少Windows Vista/Server 2008.你有什么操作系统(http://msdn.microsoft.com/en-us/library/windows/desktop/cc805844%28v=vs.85%29.aspx)? – fritzone

回答

1

使用Windows构建

为了打造libupnp Windows下的并行线程-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中或更高版本, 那么你需要因此它使用相同的VC运行库 为libupnp防止跨境运行时的问题 重建并行线程包(见http://msdn.microsoft.com/en-us/library/ms235460%28v=VS.100%29.aspx) 。 只需使用新构建版本替换Pre-build.2文件夹中的文件(将pthreads重命名为 )。 如果您还使用较新版本的pthreads-win32,那么您应该也用 替换该目录结构中的头文件(显然)。

对于构建静态库,而不是一个DLL和使用以下开关需要静态 并行线程-W32库额外定义:

UPNP_STATIC_LIB - 用于创建静态联性UPnP的库 PTW32_STATIC_LIB - 用于使用静态pthreads32库