在 MSVS 2013 中使用 libtorrent
Posted
技术标签:
【中文标题】在 MSVS 2013 中使用 libtorrent【英文标题】:Using libtorrent with MSVS 2013 【发布时间】:2016-05-23 06:20:03 【问题描述】:我在 MSVS 2013 中使用 NuGet 包管理器安装了libtorrent(版本 1.0.2)。当我运行它以查看是否可以使用它时:
#include <libtorrent\session.hpp>
using libtorrent::session;
int main()
// session ses;
return 0;
我收到错误 error C1021: invalid preprocessor command 'warning'
。
这会将我带到project_source\packages\libtorrent-src.1.0.2\lib\native\libtorrent\include\libtorrent\config.hpp
一行:
#warning unknown OS, assuming BSD
我不确定这是怎么回事,我尝试根据 cplusplus.com 上的帖子将其更改为 #error
,但出现了同样的错误。可能是愚蠢的,我评论了那条线,看看会发生什么,现在它把我带到project_source\packages\libtorrent-src.1.0.2\lib\native\libtorrent\include\libtorrent\file.hpp
说
error C1083: Cannot open include file: 'unistd.h': No such file or directory
任何想法如何解决这个问题?我试过不使用 NuGet,但我不知道如何从下载源中使用 libtorrent。该网站对我没有多大帮助。
【问题讨论】:
如何编译或生成静态库 ["libtorrent.lib"] 或 DLL ["libtorrent.dll"] ?你用的是哪个版本的boost?你用过 OpenSSL 吗? @Arvid 【参考方案1】:查看config.hpp,假设WIN32
宏是在Windows 上定义的。在你的情况下,情况似乎并非如此。
也许您可以尝试将其更改为测试_WIN32
。
【讨论】:
谢谢,它修复了#warning 问题,但现在还有很多(我正在尝试运行网站上的示例之一),例如:i.imgur.com/CzgkgYR.png。会不会是我用的那个版本? 看起来您确实在混合 libtorrent 版本。在 1.0.2(你说 NuGet 包有)中,torrent_status 在 torrent_handle.hpp 中定义。在更高版本(1.1 iirc)中,该类型被移出到它自己的标题中(看起来你的错误指向)。不过,在 1.0.2 中,您不应该有该标题。您可能需要确保您下载的源包没有被任何包含路径混合或指向 如何创建或生成静态库 ["libtorrent.lib"] 或 DLL ["libtorrent.dll"] ?你用的是哪个版本的boost?你用过 OpenSSL 吗? @Arvid appveyor 使用 boost-1.59 iirc。但过去 2 或 3 年内的任何版本都应该可以使用以上是关于在 MSVS 2013 中使用 libtorrent的主要内容,如果未能解决你的问题,请参考以下文章
在 msvs 2013 中 std::shared_ptr 的 compare_exchange_weak 是不是损坏?
尝试调试 WCF 服务代码(MSVS 2013)时,在“添加监视”功能上获取“表达式评估器中的内部错误”
MSVS 2010。如何为解决方案中的所有程序集分配相同的版本?