Visual c++ visualc&x2B+;11在CMake生成的项目中找不到Boost单元测试框架库 我有一个C++项目,使用Clinux和Boost编译Linux下的链接,没有任何问题。我正在努力通过Visual C++ 2012将这个移植到Windows。p>

Visual c++ visualc&x2B+;11在CMake生成的项目中找不到Boost单元测试框架库 我有一个C++项目,使用Clinux和Boost编译Linux下的链接,没有任何问题。我正在努力通过Visual C++ 2012将这个移植到Windows。p>,visual-c++,boost,cmake,Visual C++,Boost,Cmake,我的CMake配置如下: set(BOOST_ROOT ${DEPENDENCY_DIR}/boost/) set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_RUNTIME OFF) find_package(Boost 1.53 COMPONENTS system date_time chrono serialization filesystem program_opt

我的CMake配置如下:

set(BOOST_ROOT ${DEPENDENCY_DIR}/boost/)
set(Boost_USE_STATIC_LIBS   ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME    OFF)
find_package(Boost 1.53 COMPONENTS system date_time chrono serialization filesystem program_options random thread regex unit_test_framework)

message(STATUS "Boost Version:" ${Boost_VERSION})
message(STATUS "Boost Include Dirs:" ${Boost_INCLUDE_DIR})
message(STATUS "Boost Libraries:")
foreach(lib ${Boost_LIBRARIES})
        message(STATUS ${lib})
endforeach()

include_directories(${Boost_INCLUDE_DIR})
我在我的目标中使用
target\u link\u库
${Boost\u库}
。上面的
消息
命令显示所有找到的文件,没有任何问题

此外,所需的库按原样显示
libboost\u unit\u test\u framework-vc110-mt-gd-1\u 53.lib

然而,当我构建一个目标时,我得到

2>LINK : fatal error LNK1104: cannot open file 'boost_unit_test_framework-vc110-mt-gd-1_53.lib'
我删除了另一个Boost库,从错误中,链接器似乎能够找到其他库。(如
chrono
serialization
),但错误消息有点不同。文件名前面有lib

2>LINK : fatal error LNK1104: cannot open file 'libboost_serialization-vc110-mt-gd-1_53.lib'

为什么VC++为单元测试框架查找前缀为boost的文件,而不是libboost

好的,检查两件事:

  • 确保该文件实际存在于给定路径中,并且您具有读取权限
  • 确保32位生成使用32位.LIB,64位生成使用64位.LIB

我检查了这两个。顺便说一句,当我删除特定的单元测试框架依赖项时,它编译不依赖于此特定库的目标。您是否尝试
添加定义(-DBOOST\u ALL\u NO\u LIB)
以禁用它