与升压编译时错误(Error when compiling with boost)

2019-09-19 05:22发布

我所著它使用项目<boost/thread/locks.hpp>我添加include目录Additional Include directories ,和lib文件夹链接。 但是,当我尝试建立的解决方案,错误:

错误1个错误LNK1104:无法打开文件 'libboost_thread-VC100-MT-SGD-1_50.lib'

我搜索在lib目录下这个文件,但这个名字在lib目录中没有文件。 我发现类似名称的文件libboost_thread-vc100-mt-gd-1_50

我在做什么错?

Answer 1:

你的问题似乎是非常相似的一个在这个问题 。 根据所描述的命名约定这里链接器要使用库,并且你有磁带库之间的唯一区别是,前者静态链接到C ++标准库和编译器运行支持库。 我能想到的两种方法来解决这个问题:

  1. 获取链接希望库
    一种。 如果您使用的boostpro安装程序:

    请务必检查框Multithreaded debug, static runtime (我会建议您将它们标记全部)

    湾 如果你建库自己:

    打开控制台窗口
    目录变更为您升压根
    下面的命令构建所需的库:
    b2 toolset=msvc-10.0 --with-thread address-model=64 variant=debug link=static runtime-link=static runtime-debugging=on stage
    (我建议使用:
    b2 toolset=msvc-10.0 address-model=64 --build-type=complete stage

  2. 让链接器可以使用任何你想要的库
    一种。 请自动连接使用的共享库

    您可以定义BOOST_THREAD_DYN_LINK(仅影响线程库)或BOOST_ALL_DYN_LIB(影响所有Boost库)中包含的头文件之前(或最好在你的VC项目预处理器设置)。 这将使连接尝试使用该库boost_thread-vc100-mt-gd-1_50.lib (注意lib- preffix丢失)。

    湾 禁用自动链接

    您可以定义BOOST_ALL_NO_LIB,然后在你的连接选项添加库的确切名称



文章来源: Error when compiling with boost