windows - 如何在构建 boost 后列出失败的目标?

标签 windows boost mingw-w64

我正在使用 mingw-4.8.1 在我的 Windows 上构建 boost,但有几个目标失败了。我的问题是,我不知道哪些特定目标失败了,哪些被跳过了。

Is there a way to list the failed/skipped targets after the build is completed?

这里是控制台输出:

...failed updating 20 targets...
...skipped 28 targets...
...updated 5789 targets...

下载解压 boost 后使用的命令:

bootstrap

一旦构建了 b2.exe。我在cmd中执行以下命令

b2 -j4 --build-dir=build toolset=gcc --build-type=complete --stagedir=C:\SW\Boost -sNO_BZIP2=1

系统:Windows 7(intel i5 vPro)
编译器:gcc (mingw 4.8.1)
boost : boost 1.61.0

最佳答案

我遇到了同样的问题。经过一些研究,我发现这是查看失败位置的最佳方式。

我的错误信息(取决于你的机器,你可能会看到不同的):

...failed updating 6 targets...
...skipped 6 targets...
...updated 1092 targets...

我运行 ./b2 -q

这将在您出现第一个错误时停止,在我的例子中:

gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.8.3/release/threading-multi/bzip2.o
libs/iostreams/src/bzip2.cpp:20:56: fatal error: bzlib.h: No such file or directory
 #include "bzlib.h"  // Julian Seward's "bzip.h" header.
                                                        ^
compilation terminated.

    "g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -m64  -DBOOST_ALL_NO_LIB=1 -DBOOST_IOSTREAMS_DYN_LINK=1 -DBOOST_IOSTREAMS_USE_DEPRECATED -DNDEBUG  -I"." -c -o "bin.v2/libs/iostreams/build/gcc-4.8.3/release/threading-multi/bzip2.o" "libs/iostreams/src/bzip2.cpp"

...failed gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.8.3/release/threading-multi/bzip2.o...
...failed updating 1 target...

然后您可以安装缺少的依赖项,并查看您的第二个缺少的依赖项。 要查看每一个错误,您需要在之后安装依赖项 其他。如果您决心进行全面的 boost 构建,这很好。 就我而言,我编译了 bzip 库 http://www.bzip.org/downloads.html . 这个库制作起来很棘手。 Boost 需要 Linux 上的动态版本。

make -f Makefile-libbz2_so

您必须手动将 libbz2.so.1.0.6 文件复制到/usr/local/lib 制作两个符号链接(symbolic link)

libbz2.so.1 -> libbz2.so.1.0.6
libbz2.so -> libbz2.so.1

在此之后,我可以进行 boost ,我看到:

The Boost C++ Libraries were successfully built!

或者试试 ./b2 -s NO_BZIP2=1 跳过

关于windows - 如何在构建 boost 后列出失败的目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37812382/

相关文章:

dll - g++ 无法识别 dll 的文件格式

c - 驱动程序开发 (Windows) : What is RTL?

windows - IIS:如何在 Windows Server 2008 中禁用数据执行保护?

c++ - 用于将任意成员函数应用于对象容器容器的仿函数

c++ - 如何让 mingw64 链接到 Windows 上的 OpenAL

c - 如何在windows 10的sublime text 3中编译运行C程序?

c++ - 从应用程序代码运行服务中提取窗口句柄

python - 构建 pyinstaller 可执行文件时,我可以控制架构(32 位与 64 位)吗?

c++ - 如何使用 boost::iostreams 将 bash 脚本转换为 C++

c++ - 无法创建自定义哈希函数 unordered_map?