Make process failed - What version of asio.hpp should I use?

451 views
Skip to first unread message

Matt Cowell

unread,
Jul 21, 2016, 1:19:57 PM7/21/16
to automatak-dnp3
I've tried to make using 1.41 and 1.61 (downloaded from boost website) on a rPI 1 but I consistently fail at the same point during the build of TCPServer.cpp.o. I think its related to asio.hpp.

I appreciate any help.

Matt.

[ 82%] Building CXX object CMakeFiles/asiopal.dir/cpp/libs/src/asiopal/TCPServer.cpp.o
In file included from /home/pi/dnp3/./cpp/libs/include/asiopal/TCPServer.h:24:0,
from /home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:22:
/home/pi/dnp3/./cpp/libs/include/asiopal/ThreadPool.h:64:2: error: ‘asio’ does not name a type
asio::io_service& GetIOService();
^
/home/pi/dnp3/./cpp/libs/include/asiopal/ThreadPool.h:79:18: error: ‘asio’ was not declared in this scope
std::shared_ptr<asio::io_service> ioservice;
^
/home/pi/dnp3/./cpp/libs/include/asiopal/ThreadPool.h:79:18: note: suggested alternative:
In file included from /usr/include/boost/asio/async_result.hpp:19:0,
from /usr/local/lib/asio.hpp:20,
from /home/pi/dnp3/./cpp/libs/include/asiopal/ThreadPool.h:26,
from /home/pi/dnp3/./cpp/libs/include/asiopal/TCPServer.h:24,
from /home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:22:
/usr/include/boost/asio/handler_type.hpp:23:16: note: ‘boost::asio’
namespace asio {
^
In file included from /home/pi/dnp3/./cpp/libs/include/asiopal/TCPServer.h:24:0,
from /home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:22:
/home/pi/dnp3/./cpp/libs/include/asiopal/ThreadPool.h:79:34: error: template argument 1 is invalid
std::shared_ptr<asio::io_service> ioservice;
^
/home/pi/dnp3/./cpp/libs/include/asiopal/ThreadPool.h:80:2: error: ‘asio’ does not name a type
asio::basic_waitable_timer< asiopal::asiopal_steady_clock > infiniteTimer;
^
In file included from /home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:22:0:
/home/pi/dnp3/./cpp/libs/include/asiopal/TCPServer.h:57:11: error: ‘std::error_code’ has not been declared
std::error_code& ec
^
/home/pi/dnp3/./cpp/libs/include/asiopal/TCPServer.h:63:52: error: ‘asio’ has not been declared
virtual void AcceptConnection(uint64_t sessionid, asio::ip::tcp::socket) = 0;
^
/home/pi/dnp3/./cpp/libs/include/asiopal/TCPServer.h:69:50: error: ‘std::error_code’ has not been declared
void Configure(const std::string& adapter, std::error_code& ec);
^
/home/pi/dnp3/./cpp/libs/include/asiopal/TCPServer.h:78:2: error: ‘asio’ does not name a type
asio::ip::tcp::endpoint m_endpoint;
^
/home/pi/dnp3/./cpp/libs/include/asiopal/TCPServer.h:79:2: error: ‘asio’ does not name a type
asio::ip::tcp::acceptor m_acceptor;
^
/home/pi/dnp3/./cpp/libs/include/asiopal/TCPServer.h:80:2: error: ‘asio’ does not name a type
asio::ip::tcp::socket m_socket;
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:29:17: error: ‘asio’ is not a namespace-name
using namespace asio;
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:29:21: error: expected namespace-name before ‘;’ token
using namespace asio;
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:30:17: error: ‘asio’ has not been declared
using namespace asio::ip;
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:30:23: error: ‘ip’ is not a namespace-name
using namespace asio::ip;
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:30:25: error: expected namespace-name before ‘;’ token
using namespace asio::ip;
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:36:105: error: ‘std::error_code’ has not been declared
TCPServer::TCPServer(std::shared_ptr<ThreadPool> pool, openpal::LogRoot root, IPEndpoint endpoint, std::error_code& ec) :
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp: In constructor ‘asiopal::TCPServer::TCPServer(std::shared_ptr<asiopal::ThreadPool>, openpal::LogRoot, asiopal::IPEndpoint, int&)’:
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:39:2: error: class ‘asiopal::TCPServer’ does not have any field named ‘m_endpoint’
m_endpoint(ip::tcp::v4(), endpoint.port),
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:39:13: error: ‘ip’ has not been declared
m_endpoint(ip::tcp::v4(), endpoint.port),
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:40:2: error: class ‘asiopal::TCPServer’ does not have any field named ‘m_acceptor’
m_acceptor(pool->GetIOService()),
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:40:19: error: ‘class asiopal::ThreadPool’ has no member named ‘GetIOService’
m_acceptor(pool->GetIOService()),
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:41:2: error: class ‘asiopal::TCPServer’ does not have any field named ‘m_socket’
m_socket(pool->GetIOService()),
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:41:17: error: ‘class asiopal::ThreadPool’ has no member named ‘GetIOService’
m_socket(pool->GetIOService()),
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp: In member function ‘virtual void asiopal::TCPServer::BeginShutdown()’:
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:49:2: error: ‘m_acceptor’ was not declared in this scope
m_acceptor.close();
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp: At global scope:
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:52:60: error: ‘std::error_code’ has not been declared
void TCPServer::Configure(const std::string& adapter, std::error_code& ec)
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp: In member function ‘void asiopal::TCPServer::Configure(const string&, int&)’:
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:54:17: error: ‘asio’ has not been declared
auto address = asio::ip::address::from_string(adapter, ec);
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:61:2: error: ‘m_endpoint’ was not declared in this scope
m_endpoint.address(address);
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:62:2: error: ‘m_acceptor’ was not declared in this scope
m_acceptor.open(m_endpoint.protocol(), ec);
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:69:24: error: ‘ip’ has not been declared
m_acceptor.set_option(ip::tcp::acceptor::reuse_address(true), ec);
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:83:20: error: ‘socket_base’ has not been declared
m_acceptor.listen(socket_base::max_connections, ec);
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp: In member function ‘void asiopal::TCPServer::StartAccept()’:
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:97:30: error: ‘std::error_code’ has not been declared
auto callback = [self](std::error_code ec)
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp: In lambda function:
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:101:158: error: request for member ‘message’ in ‘ec’, which is of non-class type ‘int’
SIMPLE_LOG_BLOCK(self->m_root.logger, flags::INFO, ec.message().c_str());
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:110:47: error: ‘class asiopal::TCPServer’ has no member named ‘m_socket’
self->AcceptConnection(ID, std::move(self->m_socket));
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp: In member function ‘void asiopal::TCPServer::StartAccept()’:
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:116:2: error: ‘m_acceptor’ was not declared in this scope
m_acceptor.async_accept(m_socket, callback);
^
/home/pi/dnp3/cpp/libs/src/asiopal/TCPServer.cpp:116:26: error: ‘m_socket’ was not declared in this scope
m_acceptor.async_accept(m_socket, callback);
^
CMakeFiles/asiopal.dir/build.make:54: recipe for target 'CMakeFiles/asiopal.dir/cpp/libs/src/asiopal/TCPServer.cpp.o' failed
make[2]: *** [CMakeFiles/asiopal.dir/cpp/libs/src/asiopal/TCPServer.cpp.o] Error 1
CMakeFiles/Makefile2:97: recipe for target 'CMakeFiles/asiopal.dir/all' failed
make[1]: *** [CMakeFiles/asiopal.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2





Adam Crain

unread,
Jul 21, 2016, 1:24:58 PM7/21/16
to automatak-dnp3
Hi Matt,

ASIO comes in 2 flavors, standaline and Boost. You want the standalojne version. You can download the latest standalone release from the ASIO website (1.10.6), but here's a direct link to a compressed tarball on github:


I think I'm going to define ASIO as a git submodule so that it checks out the code automatically... This comes up enough that we can try to streamline this a bit.

-Adam
Reply all
Reply to author
Forward
0 new messages