[英]Endian conversion using boost
I followed the so called manual of boost for converting (swapping) the endian. 我按照所谓的升级手册来转换(交换)端序。
Despite their code is more readable than their manual, could some one please explain how I should fix the following code? 尽管他们的代码比他们的手册更具可读性,但有人可以解释我应该如何修复以下代码吗?
hh.cpp hh.cpp
#include <iostream>
#include <boost/array.hpp>
#include <boost/endian/conversion.hpp>
int main () {
std::cout << boost::endian::endian_reverse(5);
return 0;
}
make: 使:
g++ hh.cpp -o hh -Wall -Wconversion -Wfatal-errors -Wextra -std=c++11 -lboost_system -lrt -lboost_wave -larmadillo -lboost_thread
error: 错误:
hh.cpp:3:39: fatal error: boost/endian/conversion.hpp: No such file or directory
#include <boost/endian/conversion.hpp>
^
compilation terminated.
Update 更新
Other boost headers are included fine. 其他提升标题包含在内。 Only
endian
has problem. 只有
endian
有问题。
ls /usr/include/boost/*
Update 更新
$ cat /usr/include/boost/version.hpp
Result: 结果:
// Boost version.hpp configuration header file ------------------------------//
// (C) Copyright John maddock 1999. Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org/libs/config for documentation
#ifndef BOOST_VERSION_HPP
#define BOOST_VERSION_HPP
//
// Caution, this is the only boost header that is guarenteed
// to change with every boost release, including this header
// will cause a recompile every time a new boost version is
// released.
//
// BOOST_VERSION % 100 is the patch level
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 105400
//
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
// but as a *string* in the form "x_y[_z]" where x is the major version
// number, y is the minor version number, and z is the patch level if not 0.
// This is used by <config/auto_link.hpp> to select which library version to link to.
#define BOOST_LIB_VERSION "1_54"
#endif
endian
library was introduced in boost version 1.58 . endian
库在boost版本1.58中引入。 You have 1.54, there is no endian
library in this release. 您有1.54,此版本中没有
endian
库。 You should either update boost to 1.58+, either no use endian
library. 您应该将boost更新为1.58+,否则不使用
endian
库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.