【问题标题】:error LNK1104: cannot open file 'libboost_thread-vc100-mt-gd-1_55.lib'错误 LNK1104:无法打开文件“libboost_thread-vc100-mt-gd-1_55.lib”
【发布时间】:2014-04-23 19:28:08
【问题描述】:

我正在尝试将 boost 线程的共享库链接到我的应用程序中。

系统:Windows8

IDE:Visual Studio 2010

我使用以下方法构建 boost 库:

b2 --with-thread --build-type=complete link=shared

我可以看到

boost_thread-vc100-mt-gd-1_55.dll
boost_thread-vc100-mt-gd-1_55.lib

stage/lib目录下的其他文件

我已将附加库目录的路径和链接器选项中的输入添加为:

其他库目录:C:/boost_1_55_0_dyn/stage/lib

输入:C:\boost_1_55_0_dyn\stage\lib\boost_thread-vc100-mt-gd-1_55.lib

我不知道 Visual Studio 到底为什么要寻找 libboost_thread-vc100-mt-gd-1_55.lib。我没有在属性或任何地方的任何地方提到 libboost_thread-vc100-mt-gd-1_55.lib。我什至搜索了项目中的所有文件和文件夹,libboost_thread-vc100-mt-gd-1_55.lib 没有在任何地方提及。

【问题讨论】:

  • 项目 + 属性、C/C++、代码生成、运行时库设置。使用 /MD 匹配您的 link=shared bjam 命令。如果你想要 /MT 那么你还需要用 link=static 构建 boost
  • @Hans Passant ...和runtime-link=static.
  • @IgorR。 runtime-link=static 与共享库有什么关系?
  • 它与 static 运行时链接有关。
  • 好吧,如果我想要静态链接,我什至不会把这个问题放在这里。无论如何,我已经解决了这个问题。 :)

标签: visual-studio-2010 boost linker-errors dynamic-linking boost-build


【解决方案1】:

我忘了把 BOOST_ALL_DYN_LINK 放在预处理器定义中。如果 BOOST_ALL_DYN_LINK 没有定义,boost 会寻找静态库,这就是它寻找 libboost_thread-vc100-mt-gd-1_55.lib 的原因

【讨论】:

  • BOOST_ALL_DYN_LINK 放入pre-processor in Project + Properties, C/C++,pre-processor, pre-processor definitions 后仍然出现错误fatal error LNK1104: cannot open file 'boost_thread-vc100-mt-gd-1_55.lib'
  • 要添加它,即使您只是包含库目录,但实际上并未使用任何库,也会发生此错误。即使我什至没有使用它,我也会在 boost_system 上引发此错误。
【解决方案2】:

这是 Pritesh 已经发布的答案的附加信息,但我是新来的,所以无法发表评论。

归结为您的 VS 项目设置与构建 boost 库的方式之间的兼容性。这有点棘手,因为 boost 和 VS 为你做了一些自动链接。查看文件…\Include\boost\config\Auto_link.hpp。它解释了将导致您没有明确包含在项目中的库的算法和宏。

例如,BOOST_ALL_DYN_LINK 用于帮助确定在自动链接期间升压库名称是否应在名称前添加“lib”。

【讨论】:

    【解决方案3】:

    另外,

    如果你使用 cmake 和 qibuild,你可以试试这个:

    它会自动链接到相应的库并使其标题可用。

    qi_use_lib(yourProgramName your libraries)
    

    像这样:

    qi_use_lib(getimages ALCOMMON ALPROXIES ALVISION OPENCV2_CORE OPENCV2_HIGHGUI OPENCV2_IMGPROC)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 2014-09-04
      • 1970-01-01
      • 2014-11-01
      相关资源
      最近更新 更多