【问题标题】:LINK: fatal error LNK1104: cannot open file 'boost_program_options.lib'链接:致命错误 LNK1104:无法打开文件 'boost_program_options.lib'
【发布时间】:2014-02-25 06:39:56
【问题描述】:

我将 Boost 库用于我的一项图像处理任务。当我尝试使用 MSVC++ 10 构建程序时,出现以下错误:

fatal error LNK1104: cannot open file 'boost_program_options.lib'

但是,CMake 没有显示任何错误并且工作正常。我正在使用 Boost 1.55.0。现在我在 C:\Program Files\boost\boost_1_55_0 中搜索文件 boost_program_options.lib 但没有这样的文件。请告诉我我应该怎么做才能让我的程序正常工作。我的 CMakeLists.txt 文件包含以下几行:

FIND_PACKAGE(Boost COMPONENTS REQUIRED)
IF (Boost_FOUND)
    MESSAGE("Boost v1.55 found.")
    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
    ADD_DEFINITIONS( "-DHAS_BOOST" )
ELSE ()
    MESSAGE("Boost not found.")
    SET(Boost_INCLUDE_DIR C:/Program Files/boost/boost_1_55_0/boost)
ENDIF()
SET(Boost_LIBRARY_DIR C:/Program Files/boost/boost_1_55_0/stage/lib)

ADD_EXECUTABLE(RegionCompetition main.cxx)
TARGET_LINK_LIBRARIES(MyProject boost_program_options ${ITK_LIBRARIES})

如果这个问题已经被回答,请把我重定向到那里。但是,我没有找到这个问题的答案。

【问题讨论】:

  • 您确实构建了 boost 库,对吗?
  • 您是否尝试将 cmake 与 msvc+10 一起使用?
  • @Borgleader 是的,C:\Program Files\boost\boost_1_55_0\stage\lib 中有 .lib 文件,它们都以前缀“libboost-”开头。 bjam 告诉我将该目录添加到 VC++ 中的库目录中。我想知道'libboost_program_options-vc100-mt-1_55.lib'是否等同于boost_program_options.lib'?
  • @LaszloPapp 我想你的意思是 MSVC++ 10?是的。
  • @Captain_Haddock,不,它们不相等,但我不知道为什么要使用 VC++ 和 cmake。你是想用 cmake 生成 VS 项目还是你到底想做什么?

标签: c++ visual-studio boost cmake visual-studio-2010


【解决方案1】:

从 boost1.33 开始,boost_program_options.lib 已更改为 libboost_program_options-mt.dylib 用于多线程。您可能会使用这个新的库。

【讨论】:

  • 在我的 stage\lib 目录中有一个名为 libboost_program_options-vc100-mt-1_55.lib 的文件。我尝试使用它,但没有运气。不过,我没有找到任何名为 libboost_program_options-mt.dylib 的文件。你能告诉我它在哪里吗?
猜你喜欢
  • 2011-09-07
  • 2011-06-23
  • 2017-11-29
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多