C++ Boost-iostream:包含 filtering_streambuf.hpp 时出现神秘错误
C++ Boost-iostream: mysterious error when including filtering_streambuf.hpp
我一直在使用boost iostream库(版本1.65(,主要使用以下标头:<boost/iostreams/filtering_streambuf.hpp>
,没有问题。
在我将另一个名为 cpprest 的库添加到我的项目(https://github.com/Microsoft/cpprestsdk
(.我在我的cmake中收到此警告:
usr/bin/ld: warning: libboost_system.so.1.58.0, needed by /usr/lib/libcpprest.so, may conflict with libboost_system.so.1.65.0
同样在包含提升标头之后,我得到了这个神秘的编译错误:
/usr/local/include/boost/iostreams/detail/access_control.hpp: In constructor ‘boost::iostreams::detail::prot_<U>::prot_(V)’:
/usr/local/include/boost/iostreams/detail/access_control.hpp:37:43: error: class ‘boost::iostreams::detail::prot_<U>’ does not have any field named ‘v’
template<typename V> prot_(V v) : U(v) { }
这是由 Boost 1.58(由 cpprest 使用(和 1.65 的不兼容引起的吗?还是 Boost iostream 中的错误?
我实际上将我的提升降级为 1.58,但我仍然看到同样的错误。
是的,这看起来像是版本冲突。
请注意,由于这是access_control实现细节上的编译错误,因此很可能是由于不同的编译器标志/配置导致编译不同的代码。即使所有包含都来自同一个 Boost 版本,这也将是一个问题。
特别是,代码的某些部分可能会对目标平台做出(不同的(假设。
我发现这是定义的问题。Microsoft代码定义宏调用U(x)
,Boost 代码使用 U 作为模板变量。在导入Microsoft代码标头之前添加#define _TURN_OFF_PLATFORM_STRING
后,问题已解决。
相关文章:
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- 致命错误:找不到'boost/uuid/uuid.hpp'文件
- 造成致命错误:boost/fusion/iterator/equal_to.hpp 没有这样的文件或目录
- 错误: C1083: 无法打开包含文件:"boost/asio.hpp": 没有此类文件或目录
- C++ Boost-iostream:包含 filtering_streambuf.hpp 时出现神秘错误
- 使用Cygwin win32_api.hpp编译Boost Log中的错误
- 在thread.hpp上boost asio udp 螺纹= get_id()错误
- 致命错误:找不到 SFML/System.hpp' 文件
- 致命错误:opencv2/core.hpp:opencv4 中没有此类文件或目录编译终止
- 致命错误:opencv2/sfm.hpp:没有这样的文件或目录 #include < opencv2/sfm.hpp>
- C1001:编译器中包含 <boost/shared_ptr.hpp 时发生内部错误>
- 错误:opencv2/core/core.hpp:没有这样的文件或目录
- 编译错误与 boost/algorithm/string/trim.hpp.
- opencv 2.4.7在iOS错误背景_segm.hpp #include&lt; list&gt;未找到
- OpenCV 编译错误与非自由/feature2d.hpp.
- 错误 C1083 无法在 VS 2015 中打开包含文件:"opencv2\opencv.hpp"
- 致命错误:opencv2/nonfree/nofree.hpp:没有这样的文件或目录
- 在SWIG中包含OpenCV core.hpp时出现语法错误
- Opencv 2.4 编译错误与 objectdetect.hpp.