【问题标题】:Boost library error in Windows 7 64-bitWindows 7 64 位中的 Boost 库错误
【发布时间】:2013-06-02 03:18:24
【问题描述】:

我已经正确编译了带有 VS-10 的 Windows 8 的 Boost,如 link 中给出的那样。我的项目运行良好。但是,当我将项目复制到另一台 Windows 7 机器时,它会返回一条错误消息“应用程序无法正确启动 (0xc000007b)。单击确定关闭此应用程序。”。我也已在第二台 PC 中正确安装了 Boost。两台电脑都是 64 位的,我都安装了 32 位的 Boost。正如我从一些链接中发现的那样,这是因为该项目尝试动态链接 64 位库而不是 32 位库。您能否建议如何将其构建为便携式解决方案。提前致谢。

更新 1: 以下是依赖walker 输出。

【问题讨论】:

    标签: windows 32bit-64bit boost-thread


    【解决方案1】:

    您确定选择了 Visual Studio 2010 命令提示符 x86 来编译库吗?还是 x64 版本?开始菜单中有超过 1 个版本的命令提示符。我的猜测是你不小心运行了 x64 版本,然后用它编译了 boost,导致编译的库的 x64 位版本。

    这是一个编译 x86 中 boost 的静态和共享版本的批处理文件:

    compileboost.bat:

    call "%vs110comntools%..\..\VC\vcvarsall.bat" x86
    cd C:/boostsourcefolder/
    call bootstrap.bat
    .\b2 runtime-link=static
    .\b2 runtime-link=shared
    

    然后在你的 VS2010 项目属性中,Common Properties -> VC++ Directories -> Include Directories,输入你的 boost 文件夹(C:/boostsourcefolder/)。并在 Common Properties -> VC++ Directories -> Library Directories 中,键入 boost 编译库文件夹 (C:/boostsourcefolder/stage/lib/)。

    这就是你需要做的几乎所有事情。

    【讨论】:

    • 两台 PC 中都有三个命令提示符,分别是 Visual Studio 命令提示符 (2010)、Visual Studio x64 交叉工具命令提示符 (2010) 和 Visual Studio x64 Win64 命令提示符 (2010)。我使用第一个(Visual Studio 命令提示符(2010))在两台机器上进行编译。我应该使用其他版本吗?谢谢。
    • 应该是正确的,我更新了我的回复,以防更多细节可能对您有所帮助
    • 我只是好奇我使用以下两个命令所做的是否与您的建议完全不同。请多多指教。我首先在启动源文件夹中运行“bootstrap”,然后运行“bjam toolset=msvc-10.0 variant=debug,release threading=multi link=static”。
    • 我按照你的建议使用给定的 bat 文件做了。但问题仍然存在。有什么建议吗?
    • 您是否尝试过创建一个新项目并对其进行编译以查看它是否有效?对于您当前的项目,尝试 Build -> Clean Solution,然后 Build -> Rebuild solution,看看是否能解决问题。
    猜你喜欢
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 2020-04-03
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多