使用 BJam 使用 openssl 构建 libtorrent

Posted

技术标签:

【中文标题】使用 BJam 使用 openssl 构建 libtorrent【英文标题】:Building libtorrent with openssl with BJam 【发布时间】:2015-05-12 07:58:24 【问题描述】:

我正在尝试使用提供的 jamfile 构建 libtorrent (http://www.libtorrent.org/)。如果我尝试以香草状态构建它,一切都会顺利进行。然后我正在使用这个命令进行构建:

bjam msvc-12.0 boost=source

但是我想用似乎支持的 OpenSSL 来构建它。这是我遇到问题的地方。很可能是因为这是我第一次使用 Bjam(实际上除了 make 文件之外的任何东西)。我现在尝试运行以下命令:

bjam msvc-12.0 boost=source encryption=openssl

现在编译器开始抱怨找不到 OpenSSL 包含文件。 所以我想我必须在 JAM 文件中包含这个路径。但我不知道在哪里。 我还尝试将路径添加到 Windows 中的 INCLUDE 环境变量中,但这似乎没有被 BJAM 或 msvc 拾取。有什么建议吗?

【问题讨论】:

【参考方案1】:

我对通常如何在 Windows 上完成此操作的理解是将库和标头安装到 Visual Studio 的 includelib 文件夹中。 (这就是我至少在 Windows 上安装 openssl 的方式)。

jamfile 还应该获取 CXXFLAGSLDFLAGS 环境变量,您可以使用它们来引入库和包含路径。但是,它仅在指定 boost=system 时才会这样做,即您是针对“系统”boost 库而不是从源代码构建的。

【讨论】:

谢谢。情况似乎如此。因为我尝试将它添加到 LDFLAGS 和 CXXFLAGS 中,就像我在 make 中所做的那样,但它似乎从未接受过它。最后我只是将所有包含文件移动到 libtorrents 包含文件夹,感觉很像作弊。 另一方面,我设法将库添加到 jam 文件中,方法是在声明库名称的同一行添加:%MYLIBPATH%。

以上是关于使用 BJam 使用 openssl 构建 libtorrent的主要内容,如果未能解决你的问题,请参考以下文章

我如何让 boost-bjam 在构建时正确标识我的库?

使用特定的openssl版本构建Qt

构建boost python 3.4 64位

用 emscripten 提升 bjam

使用 bjam 编译的来自 C++ 的未定义符号

构建 Boost Python 调试