【问题标题】:Boost 1.57.0 bootstrap.bat not working for Visual Studio .NET 2003Boost 1.57.0 bootstrap.bat 不适用于 Visual Studio .NET 2003
【发布时间】:2015-02-03 20:43:39
【问题描述】:

在仅安装 Visual Studio .NET 2003 SP1 的开发机器 Vista SP1 上

- 使用 boost 1.44.0 我可以使用 bootstrap.bat 生成 b2.exe 和 bjam.exe
- 使用 boost 1.57.0 我在运行 bootstrap.bat 时收到此错误消息:

    Building Boost.Build engine

Failed to build Boost.Build engine.
Please consult bootstrap.log for furter diagnostics.

这发生在 cmd.exe 或 Visual Studio .NET 2003 命令提示符下。

我在 boostrap.log 中有这些错误:

builtins.c(1885):错误 C2065:“FSCTL_GET_REPARSE_POINT”:未声明的标识符
builtins.c(1889):错误 C2065:'IO_REPARSE_TAG_SYMLINK':未声明的标识符

builtins.c 包含

#ifdef OS_NT
#include <windows.h>
#ifndef FSCTL_GET_REPARSE_POINT
/* MinGW's version of windows.h is missing this, so we need
 * to include winioctl.h directly
 */
#include <winioctl.h>
#endif
#endif

FSCTL_GET_REPARSE_POINT 在 VS .NET 2003 提供的 winioctl.h 中

我猜由于某种原因缺少 OS_NT 定义?

注意:Boost 1.57.0 windows documentation 仍然引用 VS .NET 2003

【问题讨论】:

    标签: boost visual-studio-2003 bjam b2


    【解决方案1】:

    我有 WindowsXP SP3 和 MSVC 2005 并且有同样的问题。 在玩了一会儿之后,我在 src/engine/jam.h 中添加了以下内容:

    #ifdef NT
    
    #define _WIN32_WINNT 0x0501
    #define IO_REPARSE_TAG_SYMLINK                  (0xA000000CL)
    

    我还使用 MSVC 命令提示符为 MSVC 设置了所有内容

    【讨论】:

    • 该修复在 Visual Studio 2003 中效果很好。不幸的是,下一步失败了; ".\b2 toolset=msvc-7.1" 开始运行,但失败并显示多条错误消息。我的印象是,Visual C++ 7.1 不再支持构建库,尽管到目前为止编译我的仅使用 Boost 1.57.0 头文件的项目运行良好。
    猜你喜欢
    • 2013-12-30
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 2019-08-15
    • 1970-01-01
    • 2018-07-06
    相关资源
    最近更新 更多