Trying to compile OpenDNP3 on Ubuntu 14.01.1

1,978 views
Skip to first unread message

Nick_Sef

unread,
Sep 16, 2014, 11:09:25 PM9/16/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Hi All,

I'm trying to install OpenDNP3 on my VirtualBox Image of Ubuntu 14.01.1. My intention is to create a Master and Slave virtual box network to study DNP3 traffic, I intend to use CodeLite (codelite.org) as my C++ development IED. Unfortunately, I'm having some difficulties compiling the libraries using the following steps:

#Installing dependencies
sudo apt-get install autoconf libtool g++ git libboost-all-dev

#find 'asio' directory
find /usr/include -name 'asio'

#add asio path as an environment variable
ASIO_HOME=/usr/include/boost/asio

#clone from github
git clone https://github.com/automatak/dnp3

#Build and Install
cd dnp3
sudo autoreconf -f -i
sudo ./configure
sudo make # Breaks here!

Output during the make:
==================
/bin/bash ./libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"opendnp3\" -DPACKAGE_TARNAME=\"opendnp3\" -DPACKAGE_VERSION=\"1.1.0\" -DPACKAGE_STRING=\"opendnp3\ 1.1.0\" -DPACKAGE_BUGREPORT=\"jadam...@automatak.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"opendnp3\" -DVERSION=\"1.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -I./cpp/libs/openpal/src -I./cpp/libs/asiopal/src -I -DASIO_STANDALONE -g -O2 -std=c++11 -MT cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo -MD -MP -MF cpp/libs/asiopal/src/asiopal/.deps/libasiopal_la-ASIOExecutor.Tpo -c -o cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo `test -f 'cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp' || echo './'`cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp
libtool: compile: g++ -DPACKAGE_NAME=\"opendnp3\" -DPACKAGE_TARNAME=\"opendnp3\" -DPACKAGE_VERSION=\"1.1.0\" "-DPACKAGE_STRING=\"opendnp3 1.1.0\"" -DPACKAGE_BUGREPORT=\"jadam...@automatak.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"opendnp3\" -DVERSION=\"1.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -I./cpp/libs/openpal/src -I./cpp/libs/asiopal/src -I -DASIO_STANDALONE -g -O2 -std=c++11 -MT cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo -MD -MP -MF cpp/libs/asiopal/src/asiopal/.deps/libasiopal_la-ASIOExecutor.Tpo -c cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp -fPIC -DPIC -o cpp/libs/asiopal/src/asiopal/.libs/libasiopal_la-ASIOExecutor.o
In file included from cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:26:0,
from cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp:21:
cpp/libs/asiopal/src/asiopal/Synchronized.h:25:20: fatal error: asio.hpp: No such file or directory
#include <asio.hpp>
^
compilation terminated.
make: *** [cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo] Error 1


I followed the steps in the Linux Build document (http://dnp3.github.io/doc/2.0.x/building/building-linux.html) and also the Prerequisites. Have I missed something?

Thanks in advance
Nick

J Adam Crain

unread,
Sep 17, 2014, 9:00:16 AM9/17/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Opendnp3 doesn't depend on BOOST anymore. It makes use of the non-boost version of ASIO:


I think once you point ASIO_HOME to the include subdirectory of that package you'll be good to go. ASIO is header only, so you don't need to compile anything.

-Adam


On Tuesday, September 16, 2014 11:09:25 PM UTC-4, Nick_Sef wrote:
Hi All,

I'm trying to install OpenDNP3 on my VirtualBox Image of Ubuntu 14.01.1. My intention is to create a Master and Slave virtual box network to study DNP3 traffic, I intend to use CodeLite (codelite.org) as my C++ development IED. Unfortunately, I'm having some difficulties compiling the libraries using the following steps:

#Installing dependencies
sudo apt-get install autoconf libtool g++ git libboost-all-dev

#find 'asio' directory
find /usr/include -name 'asio'

#add asio path as an environment variable
ASIO_HOME=/usr/include/boost/asio

#clone from github
git clone https://github.com/automatak/dnp3

#Build and Install
cd dnp3
sudo autoreconf -f -i
sudo ./configure
sudo make   # Breaks here!

Output during the make:
==================

/bin/bash ./libtool  --tag=CXX   --mode=compile g++ -DPACKAGE_NAME=\"opendnp3\" -DPACKAGE_TARNAME=\"opendnp3\" -DPACKAGE_VERSION=\"1.1.0\" -DPACKAGE_STRING=\"opendnp3\ 1.1.0\" -DPACKAGE_BUGREPORT=\"jadamcrai...@automatak.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"opendnp3\" -DVERSION=\"1.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.    -I./cpp/libs/openpal/src -I./cpp/libs/asiopal/src -I  -DASIO_STANDALONE -g -O2 -std=c++11 -MT cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo -MD -MP -MF cpp/libs/asiopal/src/asiopal/.deps/libasiopal_la-ASIOExecutor.Tpo -c -o cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo `test -f 'cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp' || echo './'`cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp
libtool: compile:  g++ -DPACKAGE_NAME=\"opendnp3\" -DPACKAGE_TARNAME=\"opendnp3\" -DPACKAGE_VERSION=\"1.1.0\" "-DPACKAGE_STRING=\"opendnp3 1.1.0\"" -DPACKAGE_BUGREPORT=\"jadamcrai...@automatak.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"opendnp3\" -DVERSION=\"1.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -I./cpp/libs/openpal/src -I./cpp/libs/asiopal/src -I -DASIO_STANDALONE -g -O2 -std=c++11 -MT cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo -MD -MP -MF cpp/libs/asiopal/src/asiopal/.deps/libasiopal_la-ASIOExecutor.Tpo -c cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp  -fPIC -DPIC -o cpp/libs/asiopal/src/asiopal/.libs/libasiopal_la-ASIOExecutor.o


In file included from cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:26:0,
                 from cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp:21:
cpp/libs/asiopal/src/asiopal/Synchronized.h:25:20: fatal error: asio.hpp: No such file or directory
 #include <asio.hpp>
                    ^
compilation terminated.
make: *** [cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo] Error 1

Joshua Petitt

unread,
Sep 19, 2014, 8:50:17 AM9/19/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Look at your make command, something is wrong with the segment here:

... -I. -I./cpp/libs/openpal/src -I./cpp/libs/asiopal/src -I -DASIO_STANDALONE ...


The asio.hpp path should have appear next to the -I before -DASIO_STANDALONE
Look at the generated Makefile and the Makefile.am to see this.

Nick_Sef

unread,
Oct 16, 2014, 3:41:28 AM10/16/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Hi Adam, 

I've tried the non-boost version of ASIO from http://think-async.com/ and still no luck.
I'm literally using a fresh installation of Ubuntu Server 14.1.1 in Virtual Box, 
so if anyone would like to replicate the issue, I have attached my installation bash script along with an output log

Sorry for the month late response.
 
Cheers
Nick

opendnp3.sh
openDNP3.log

J Adam Crain

unread,
Oct 16, 2014, 10:10:16 PM10/16/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Hi Nick,

It looks like the configure script is seeing an empty ASIO_HOME environment variable.

"-I./cpp/libs/asiopal/src -I -DASIO_STANDALONE"

The space after -I would normally contain something like "/home/user/asio/asio/include".

I see that you tried to set this in the shell script. Have you tried setting the variable permanently for you user by adding something like this to your .bashrc?

export ASIO_HOME=/home/user/asio/asio/include

I don't know why it isn't picking it up.

-Adam

Nick_Sef

unread,
Oct 25, 2014, 5:35:32 AM10/25/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Thanks Adam, 

I've now added ASIO Home as a permanent environment variable as you suggested, and I have manage to over come the previous issue, but it seems I have encountered another.
I'm having some trouble compiling the 'strand' class in the ASIO library. Not sure what to do form here.

I have updated and attached the installation scripts along with the terminal logs for anyone who would like to replicate the issue.

Kind Regards, 
Nick
asio_install.sh
opendnp3.sh
opendnp3_install.log

J Adam Crain

unread,
Oct 25, 2014, 10:33:40 AM10/25/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Hi Nick,

Try using one of the official ASIO releases instead of cloning the tip of the repo:


I know that 1.10.2 & 1.10.3 work. I have not tried 1.10.4 yet.

-Adam

Nick_Sef

unread,
Oct 27, 2014, 12:51:48 AM10/27/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Thanks Adam!

Managed to compile everything!
I have attached the final script for anyone else who would like to compile and install OpenDNP3.

Kind Regards
Nick
install_opendnp3.sh

J Adam Crain

unread,
Oct 28, 2014, 1:51:41 PM10/28/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Excellent.

I've modified the docs to explicitly list that you should use a release version of ASIO, and which versions have been tested.

Happy coding.

Are you working on a personal project or something for your employer?

ahi...@vcharge-energy.com

unread,
Dec 16, 2014, 4:07:21 PM12/16/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
Thanks for the excellent pointers in here, Nick and Adam -- I've gotten a lot farther towards compiling on Ubuntu 12.04 than I had initially, but I'm still slamming up against a problem. Compilation whirs along until it gets here - any thoughts?

libtool: compile: g++ -DPACKAGE_NAME=\"opendnp3\" -DPACKAGE_TARNAME=\"opendnp3\" -DPACKAGE_VERSION=\"1.1.0\" "-DPACKAGE_STRING=\"opendnp3 1.1.0\"" -DPACKAGE_BUGREPORT=\"jadam...@automatak.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"opendnp3\" -DVERSION=\"1.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -I./cpp/libs/openpal/src -I./cpp/libs/asiopal/src -I /home/ahirsch/src/asio-asio-1-10-3/asio/include -DASIO_STANDALONE -g -O2 -std=c++0x -MT cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo -MD -MP -MF cpp/libs/asiopal/src/asiopal/.deps/libasiopal_la-ASIOExecutor.Tpo -c cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp -fPIC -DPIC -o cpp/libs/asiopal/src/asiopal/.libs/libasiopal_la-ASIOExecutor.o

In file included from cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp:21:0:
cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:45:46: error: expected ‘;’ at end of member declaration
cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:45:48: error: ‘override’ does not name a type
cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:46:95: error: expected ‘;’ at end of member declaration
cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:46:98: error: ‘override’ does not name a type
cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:47:101: error: expected ‘;’ at end of member declaration
cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:47:104: error: ‘override’ does not name a type
cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:48:52: error: expected ‘;’ at end of member declaration
cpp/libs/asiopal/src/asiopal/ASIOExecutor.h:48:54: error: ‘override’ does not name a type
In file included from cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp:23:0:
cpp/libs/asiopal/src/asiopal/TimerASIO.h:66:30: error: ‘steady_clock’ is not a member of ‘std::chrono’
cpp/libs/asiopal/src/asiopal/TimerASIO.h:66:30: error: ‘steady_clock’ is not a member of ‘std::chrono’
cpp/libs/asiopal/src/asiopal/TimerASIO.h:66:56: error: template argument 1 is invalid
cpp/libs/asiopal/src/asiopal/TimerASIO.h:66:56: error: template argument 2 is invalid
cpp/libs/asiopal/src/asiopal/TimerASIO.h:66:56: error: template argument 3 is invalid
cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp: In member function ‘virtual openpal::MonotonicTimestamp asiopal::ASIOExecutor::GetTime()’:
cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp:81:76: error: ‘std::chrono::steady_clock’ has not been declared
cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp: In member function ‘virtual openpal::ITimer* asiopal::ASIOExecutor::Start(const openpal::TimeDuration&, const openpal::Action0&)’:
cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp:87:16: error: request for member ‘expires_from_now’ in ‘pTimer->asiopal::TimerASIO::timer’, which is of non-class type ‘int’
cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp: In member function ‘virtual openpal::ITimer* asiopal::ASIOExecutor::Start(const openpal::MonotonicTimestamp&, const openpal::Action0&)’:
cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp:95:16: error: request for member ‘expires_at’ in ‘pTimer->asiopal::TimerASIO::timer’, which is of non-class type ‘int’
cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp:95:40: error: ‘std::chrono::steady_clock’ has not been declared
cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp: In member function ‘void asiopal::ASIOExecutor::StartTimer(asiopal::TimerASIO*, const openpal::Action0&)’:
cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp:128:16: error: request for member ‘async_wait’ in ‘pTimer->asiopal::TimerASIO::timer’, which is of non-class type ‘int’

Adam Crain

unread,
Dec 16, 2014, 4:33:55 PM12/16/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
The errors seem to indicate that g++ doesn't understand the C++11 override directive. I think this indicates you're on older oversion of GCC than 4.7.x required to compile the library.

Which branch are you compiling? I just noticed that we forgot to update the version in configure.ac in the 2.0.x branch.

-Adam


On Tuesday, December 16, 2014 4:07:21 PM UTC-5, ahi...@vcharge-energy.com wrote:
Thanks for the excellent pointers in here, Nick and Adam -- I've gotten a lot farther towards compiling on Ubuntu 12.04 than I had initially, but I'm still slamming up against a problem. Compilation whirs along until it gets here - any thoughts?

libtool: compile:  g++ -DPACKAGE_NAME=\"opendnp3\" -DPACKAGE_TARNAME=\"opendnp3\" -DPACKAGE_VERSION=\"1.1.0\" "-DPACKAGE_STRING=\"opendnp3 1.1.0\"" -DPACKAGE_BUGREPORT=\"jadamcrai...@automatak.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"opendnp3\" -DVERSION=\"1.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -I./cpp/ach libs/openpal/src -I./cpp/libs/asiopal/src -I /home/ahirsch/src/asio-asio-1-10-3/asio/include -DASIO_STANDALONE -g -O2 -std=c++0x -MT cpp/libs/asiopal/src/asiopal/libasiopal_la-ASIOExecutor.lo -MD -MP -MF cpp/libs/asiopal/src/asiopal/.deps/libasiopal_la-ASIOExecutor.Tpo -c cpp/libs/asiopal/src/asiopal/ASIOExecutor.cpp  -fPIC -DPIC -o cpp/libs/asiopal/src/asiopal/.libs/libasiopal_la-ASIOExecutor.o

ahi...@vcharge-energy.com

unread,
Dec 16, 2014, 4:47:41 PM12/16/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
On Tuesday, December 16, 2014 3:33:55 PM UTC-6, Adam Crain wrote:
 
The errors seem to indicate that g++ doesn't understand the C++11 override directive. I think this indicates you're on older oversion of GCC than 4.7.x required to compile the library.

Ah hah! 
     
     gcc version 4.6.3

Shoot, I didn't see that version requirement mentioned in the docs. 
 
Which branch are you compiling? I just noticed that we forgot to update the version in configure.ac in the 2.0.x branch.

I just grabbed the current 2.0.x version from github -- should I have compiled against a specific older branch? Life on the bleeding edge is always so ... exciting!

Adam

 

Adam Crain

unread,
Dec 16, 2014, 4:55:17 PM12/16/14
to automat...@googlegroups.com, n.rod...@qut.edu.au
2.0.x is a fine place to be. There will be some some minor API tweaks in the next feature release, but I would definitely use 2.0.0 over the older 1.1.x branch for any new project.

-Adam

ahi...@vcharge-energy.com

unread,
Dec 16, 2014, 5:33:40 PM12/16/14
to automat...@googlegroups.com
Success!

On my ubuntu 12.04 machine, I needed to install gcc-4.7 and g++-4.7 (and the dependencies that came along with them) from Ubuntu's toolchain PPA:

ppa:ubuntu-toolchain-r/test

Once I did that, I added the following to Nick's sequence above:

export CXX='/usr/bin/g++-4.7'
export CC='/usr/bin/gcc-4.7'
export CPP='/usr/bin/cpp-4.7'

and then re-did the autoreconf, configure and make, which succeeded.

Thanks very much for the pointer about gcc 4.7, Adam -- I'd have been bashing my head on my desk still, without that.

Adam

Jose Luis Valenzuela

unread,
Jul 19, 2015, 10:50:36 AM7/19/15
to automat...@googlegroups.com, n.rod...@qut.edu.au
Use this method to compile a BEAGLEBONE previously with no problems. However today has presented me the following problem:

/crtn.o -O2 -Wl,-soname -Wl,libopendnp3.so.2 -o .libs/libopendnp3.so.2.0.0 cpp/libs/opendnp3/src/opendnp3/master/.libs/libopendnp3_la-AssignClassTask.o: In function opendnp3::AssignClassTask::IsEnabled() const':
/root/dnp3/cpp/libs/opendnp3/src/opendnp3/master/AssignClassTask.cpp:46: multiple definition ofopendnp3::AssignClassTask::IsEnabled() const' cpp/libs/opendnp3/src/opendnp3/master/.libs/libopendnp3_la-AssignClassTask.o:/root/dnp3/cpp/libs/opendnp3/src/opendnp3/master/AssignClassTask.cpp:46: first defined here cpp/libs/opendnp3/src/opendnp3/master/.libs/libopendnp3_la-AssignClassTask.o:(.data.rel.ro+0x10): multiple definition of vtable for opendnp3::AssignClassTask'
cpp/libs/opendnp3/src/opendnp3/master/.libs/libopendnp3_la-AssignClassTask.o:(.data.rel.ro+0x10): first defined here
cpp/libs/opendnp3/src/opendnp3/master/.libs/libopendnp3_la-AssignClassTask.o: In functionopendnp3::AssignClassTask::OnResponseError(openpal::MonotonicTimestamp)': /root/dnp3/cpp/libs/opendnp3/src/opendnp3/master/AssignClassTask.cpp:70: multiple definition of opendnp3::AssignClassTask::OnResponseError(openpal::MonotonicTimestamp)'
cpp/libs/opendnp3/src/opendnp3/master/.libs/libopendnp3_la-AssignClassTask.o:/root/dnp3/cpp/libs/opendnp3/src/opendnp3/master/AssignClassTask.cpp:70: first defined here
cpp/libs/opendnp3/src/opendnp3/master/.libs/libopendnp3_la-AssignClassTask.o: In functionopendnp3::AssignClassTask::OnResponseOK(openpal::MonotonicTimestamp)': /root/dnp3/cpp/libs/opendnp3/src/opendnp3/master/AssignClassTask.cpp:65: multiple definition of `opendnp3::AssignClassTask::OnResponseOK(openpal::MonotonicTimestamp)' cpp/libs/opendnp3/src/opendnp3/master/.libs/libopendnp3_la-AssignClassTask.o:/root/dnp3/cpp/libs/opendnp3/src/opendnp3/master/AssignClassTask.cpp:65: first defined here

ETC....

Any idea?

Adam Crain

unread,
Jul 19, 2015, 10:57:11 AM7/19/15
to automat...@googlegroups.com, jose.va...@gmail.com
Please provide info about which release you are compiling and the toolchain versions.
Reply all
Reply to author
Forward
0 new messages