构建 CMake 项目时无法打开 Boost 库
Posted
技术标签:
【中文标题】构建 CMake 项目时无法打开 Boost 库【英文标题】:Cannot open Boost library when building CMake project 【发布时间】:2019-07-08 23:00:07 【问题描述】:我想使用 Visual Studio 2019 构建一个需要 Boost 和多个不同库的 CMake 项目。当我构建为静态库时没有问题,但是当我取消选中 BUILDSTATIC 和 LINKSTATIC 时,我得到:
fatal error LNK1104: cannot open file 'boost_thread-vc142-mt-x64-1_70.lib'
...
fatal error LNK1104: cannot open file 'boost_filesystem-vc142-mt-x64-1_70.lib'
尽管所有必需的变量似乎都设置正确:
Boost_DIR: D:/boost_1_70_0/boost
Boost_INCLUDE_DIR: D:/boost_1_70_0
Boost_LIBRARY_DIR_RELEASE: D:/boost_1_70_0/stage/lib
BOOST_LIBRARYDIR: D:/boost_1_70_0/stage/lib
Boost_FILESYSTEM_LIBRARY_RELEASE: D:/boost_1_70_0/stage/lib/libboost_filesystem-vc142-mt-x64-1_70.lib
Boost_SYSTEM_LIBRARY_RELEASE: D:/boost_1_70_0/stage/lib/libboost_system-vc142-mt-x64-1_70.lib
Boost_THREAD_LIBRARY_RELEASE: D:/boost_1_70_0/stage/lib/libboost_thread-vc142-mt-x64-1_70.lib
Boost_CHRONO_LIBRARY_RELEASE: D:/boost_1_70_0/stage/lib/libboost_chrono-vc142-mt-x64-1_70.lib
Boost_ATOMIC_LIBRARY_RELEASE: D:/boost_1_70_0/stage/lib/libboost_atomic-vc142-mt-x64-1_70.lib
Boost_DATE_TIME_LIBRARY_RELEASE: D:/boost_1_70_0/stage/lib/libboost_date_time-vc142-mt-x64-1_70.lib
可能是什么问题?
【问题讨论】:
【参考方案1】:解决方案是构建动态 Boost 库,然后链接它们,而不是链接到静态库。
【讨论】:
以上是关于构建 CMake 项目时无法打开 Boost 库的主要内容,如果未能解决你的问题,请参考以下文章
在 cmake 文件中打开 no_keyword(Qt 选项)以使用 boost::signals