因此,进一步的研究得出以下结果。
可以使用b2 [options]
获取构建配置和其他构建输出。
b2 --help
显示可以使用的选项。我使用了以下方法来诊断哪些目标失败或被跳过。
方法1
如@JanHenke在评论中建议的那样,我运行了相同的命令
b2 -j4 --build-dir=build toolset=gcc --build-type=complete --stagedir=C:\SW\Boost -sNO_BZIP2=1
(如问题所述) 再次提醒。
结果: 所有已构建的目标都会被跳过,只显示失败的目标。
问题: 如果有许多目标失败,则会在控制台上引起淹没,很难找出发生了什么。
方法2
运行命令(参见1),并使用右键单击从命令提示符中选择所有内容,然后单击获取以将其复制并粘贴到文本编辑器中,以便进行搜索。
结果: 通过搜索failed或error关键字可以得出可用的见解。
问题: 仍不是最佳方式,因为当前cmd窗口上没有所有信息。
方法3
未完成,因为对我来说方法2有效,但肯定有效
创建一个batchfile
,其中写入命令,并使用>
或>>
运算符将在cmd窗口中打印的所有内容记录在文本文件中。
结果: 这将是目前我所知道的最好的方法,可以了解哪些确切的目标正在失败,并采取适当的诊断措施。
PS: 我发现使用MinGW构建序列化库时存在错误。下面是我遇到的错误以及一个链接,指向讨论同一错误的boost论坛。
gcc.compile.c++ build\boost\bin.v2\libs\serialization\build\gcc-mingw-4.8.1\debug\xml_woarchive.o
In file included from ./boost/archive/detail/utf8_codecvt_facet.hpp:23:0,
from ./boost/archive/impl/xml_woarchive_impl.ipp:34,
from libs\serialization\src\xml_woarchive.cpp:28:
./boost/detail/utf8_codecvt_facet.hpp:116:30: error:
function 'boost::archive::detail::utf8_codecvt_facet::utf8_codecvt_facet(std::size_t)'
definition is marked dllimport
更多信息请参考参考1和参考2。
不幸的是,我们还没有找到解决方案。而且,这也不是本问题的范围。
--without-python
排除了这些库并再次运行了命令。现在有 12 个目标失败 而不是 20_。难道没有其他方法吗?此外,_user_config.hpp 对您的修复到底起了什么作用呢?谢谢您的回复。 - Tomarboost/config/user.hpp
文件中,你可以设置一些全局选项,主要是关于 boost 如何尝试与你的应用程序链接。重点是,你应该使用默认设置编译最初的 boost 库。如果系统上没有安装 Python,则可能无法编译 Python 库。 - Jan Henke