Visual Studio 2017与Boost 1.64.0/1.63.0发行的兼容性
Visual Studio 2017 compatibality with boost 1.64.0/1.63.0 issue
我有一个使用Boost 1.64.0的项目,因为我需要Boost过程。它的cmakelist处理并使用QT/clion编制了代码,但是当我与Visual Studio 2017使用相同的代码时,我收到了以下错误(Bellow的输出为Boost 1.63.0,但我首次尝试了1.64.0)。
>1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:987 ] _boost_TEST_VERSIONS =
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:989 ] Boost_USE_MULTITHREADED = ON
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:991 ] Boost_USE_STATIC_LIBS = ON
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:993 ] Boost_USE_STATIC_RUNTIME =
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:995 ] Boost_ADDITIONAL_VERSIONS =
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:997 ] Boost_NO_SYSTEM_PATHS =
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1065 ] Declared as CMake or Environmental Variables:
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1067 ] BOOST_ROOT =
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1069 ] BOOST_INCLUDEDIR =
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1071 ] BOOST_LIBRARYDIR =
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1073 ] _boost_TEST_VERSIONS =
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1166 ] location of version.hpp: D:/Program Files/boost_1_63_0/boost/version.hpp
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1190 ] version.hpp reveals boost 1.63.0
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1276 ] guessed _boost_COMPILER = -vc150
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1286 ] _boost_MULTITHREADED = -mt
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1330 ] _boost_RELEASE_ABI_TAG = -
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1332 ] _boost_DEBUG_ABI_TAG = -gd
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1388 ] _boost_LIBRARY_SEARCH_DIRS_RELEASE = D:/Program Files/boost_1_63_0/bin/x64;D:/Program Files/boost_1_63_0/lib;D:/Program Files/boost_1_63_0/stage/lib;D:/Program Files/boost_1_63_0/lib64-msvc-15.0;D:/Program Files/boost_1_63_0/lib;D:/Program Files/boost_1_63_0/../lib;D:/Program Files/boost_1_63_0/stage/lib;PATHS;C:/boost/lib;C:/boost;/sw/local/lib_boost_LIBRARY_SEARCH_DIRS_DEBUG = D:/Program Files/boost_1_63_0/bin/x64;D:/Program Files/boost_1_63_0/lib;D:/Program Files/boost_1_63_0/stage/lib;D:/Program Files/boost_1_63_0/lib64-msvc-15.0;D:/Program Files/boost_1_63_0/lib;D:/Program Files/boost_1_63_0/../lib;D:/Program Files/boost_1_63_0/stage/lib;PATHS;C:/boost/lib;C:/boost;/sw/local/lib
1> CMake Warning at C:/.../cmake-3.7/Modules/FindBoost.cmake:746 (message):
1> Imported targets not available for Boost version 106300
1> Call Stack (most recent call first):
1> C:/.../cmake-3.7/Modules/FindBoost.cmake:850 (_Boost_COMPONENT_DEPENDENCIES)
1> C:/.../cmake-3.7/Modules/FindBoost.cmake:1439 (_Boost_MISSING_DEPENDENCIES)
1> projects/Visualizer/CMakeLists.txt:121 (find_package)
1>
1>
1> CMake Warning at C:/.../cmake-3.7/Modules/FindBoost.cmake:746 (message):
1> Imported targets not available for Boost version 106300
1> Call Stack (most recent call first):
1> C:/.../cmake-3.7/Modules/FindBoost.cmake:850 (_Boost_COMPONENT_DEPENDENCIES)
1> C:/.../cmake-3.7/Modules/FindBoost.cmake:1439 (_Boost_MISSING_DEPENDENCIES)
1> projects/Visualizer/CMakeLists.txt:121 (find_package)
1>
1>
1> CMake Warning at C:/.../cmake-3.7/Modules/FindBoost.cmake:746 (message):
1> Imported targets not available for Boost version 106300
1> Call Stack (most recent call first):
1> C:/.../cmake-3.7/Modules/FindBoost.cmake:850 (_Boost_COMPONENT_DEPENDENCIES)
1> C:/.../cmake-3.7/Modules/FindBoost.cmake:1439 (_Boost_MISSING_DEPENDENCIES)
1> projects/Visualizer/CMakeLists.txt:121 (find_package)
1>
1>
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1527 ] Searching for SYSTEM_LIBRARY_RELEASE: libboost_system-vc150-mt-1_63;libboost_system-vc150-mt;libboost_system-mt-1_63;libboost_system-mt;libboost_system;libboost_system-vc150-mt-s-1_63;libboost_system-vc150-mt-s;libboost_system-mt-s-1_63;libboost_system-mt-s
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1569 ] Searching for SYSTEM_LIBRARY_DEBUG: libboost_system-vc150-mt-gd-1_63;libboost_system-vc150-mt-gd;libboost_system-mt-gd-1_63;libboost_system-mt-gd;libboost_system-mt;libboost_system;libboost_system-vc150-mt-s-gd-1_63;libboost_system-vc150-mt-s-gd;libboost_system-mt-s-gd-1_63;libboost_system-mt-s-gd
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1527 ] Searching for FILESYSTEM_LIBRARY_RELEASE: libboost_filesystem-vc150-mt-1_63;libboost_filesystem-vc150-mt;libboost_filesystem-mt-1_63;libboost_filesystem-mt;libboost_filesystem;libboost_filesystem-vc150-mt-s-1_63;libboost_filesystem-vc150-mt-s;libboost_filesystem-mt-s-1_63;libboost_filesystem-mt-s
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1569 ] Searching for FILESYSTEM_LIBRARY_DEBUG: libboost_filesystem-vc150-mt-gd-1_63;libboost_filesystem-vc150-mt-gd;libboost_filesystem-mt-gd-1_63;libboost_filesystem-mt-gd;libboost_filesystem-mt;libboost_filesystem;libboost_filesystem-vc150-mt-s-gd-1_63;libboost_filesystem-vc150-mt-s-gd;libboost_filesystem-mt-s-gd-1_63;libboost_filesystem-mt-s-gd
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1527 ] Searching for THREAD_LIBRARY_RELEASE: libboost_thread-vc150-mt-1_63;libboost_thread-vc150-mt;libboost_thread-mt-1_63;libboost_thread-mt;libboost_thread;libboost_thread-vc150-mt-s-1_63;libboost_thread-vc150-mt-s;libboost_thread-mt-s-1_63;libboost_thread-mt-s
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1569 ] Searching for THREAD_LIBRARY_DEBUG: libboost_thread-vc150-mt-gd-1_63;libboost_thread-vc150-mt-gd;libboost_thread-mt-gd-1_63;libboost_thread-mt-gd;libboost_thread-mt;libboost_thread;libboost_thread-vc150-mt-s-gd-1_63;libboost_thread-vc150-mt-s-gd;libboost_thread-mt-s-gd-1_63;libboost_thread-mt-s-gd
1> -- [ C:/.../cmake-3.7/Modules/FindBoost.cmake:1639 ] Boost_FOUND = 1
1> CMake Error at C:/.../cmake-3.7/Modules/FindBoost.cmake:1795 (message):
1> Unable to find the requested Boost libraries.
1>
1> Boost version: 1.63.0
1>
1> Boost include path: D:/Program Files/boost_1_63_0
1>
1> Could not find the following static Boost libraries:
1>
1> boost_system
1> boost_filesystem
1> boost_thread
1>
1> No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the
1> directory containing Boost libraries or BOOST_ROOT to the location of
1> Boost.
如下所示,我将Boost降低到1.63.0,但又有相同的错误。
是否有任何建议(我确定我适当地设置BOOST_ROOT
,BOOST_INCLUDEDIR
和BOOST_LIBRARYDIR
)?
我可以升级VS2017-CMAKE使用CMAKE 3.8(单独安装CMAKE 3.8并浏览VS2017以使用它)?
VS2017(CMAKE 3.7)与哪个版本的Boost?
我使用Visual Studio来编译基于CMAKE的项目,该项目使用Boost 1.64.0。问题是Visual Studio的Cmake(v3.7),无法找到Boost Libs/dll。正如发现Dan Masek cmake添加令牌-vc141
以在构建时增强libs/dll,而FindBoost必须知道它(doken是 -vc140
, -vc141
或etc)才能找到它们。
在cmake(v3.7)中,这个令牌是-v150
用于Boost,它使用Visual Studio 2017构建。用-v141
更改它使所有事情都正确。
摘要:为了查找Visual Studio 2017 Boost Libs/dlls:查找文件FindBoost.cmake
和在行431
将set(_boost_COMPILER "-vc150")
更改为set(_boost_COMPILER "-vc141")
。
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- 即发即弃 std::线程对象清理自身
- 提升序列化 1:73 的向后兼容性问题
- 在gcc中意外调用了Const重载.编译器错误或兼容性修复程序
- 各种版本的 Mac OSX 向后兼容性如何?(Xcode C++
- Visual Studio 19-17 库兼容性根据 GL 标志
- C++ ABI 兼容性问题/张量流
- Oracle OCCI 和 g++ 7.1 的兼容性问题
- 为什么库API+编译器ABI足以确保具有不同版本gcc的对象之间的兼容性
- 对指针和恒常性兼容性的引用
- 检查操作系统兼容性
- 我应该将哪种有效负载类型发送给webrtc::P ayloadRouter的构造函数?
- 这个代码片段中会发生死锁吗?为什么
- 谷歌测试发现在macOSX上添加并运行了我的所有测试两次
- 添加noexcept是否会破坏二进制兼容性
- 右值需要分配什么向后兼容性
- 如何在不添加对库的依赖的情况下添加与库结构的兼容性
- 在Qt中使用C++Lambda函数作为插槽是否有助于保持库的二进制兼容性?
- python 和 swig 版本兼容性问题