EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: Compilation of IOC using OPC UA device support
From: DESMARCHELIER Gabriel via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 9 Feb 2022 10:08:21 +0000

Dear all,


I am trying to work with OPC UA device support, based on Unified Automation OPC UA C++ based client library : https://github.com/epics-modules/opcua


I am only using Unified Automation evaluation bundle so far.


I am using Centos 7. Unified Automation SDK was compiled with gcc 9.4.0, openssl 1.1.1k and libxml 2.9.1. Everything went OK when compiling the SDK as far as I can see.


devOpcuaSup compiles without errors as well.


At IOC compilation, I encounter the following error and can’t get rid of it :


/usr/local/bin/g++ -o iocRfqRfAmplifiers -L/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64 -L/iee/base/lib/linux-x86_64 -Wl,-rpath,/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64 -Wl,-rpath,/iee/base/lib/linux-x86_64 -rdynamic -m64 iocRfqRfAmplifiers_registerRecordDeviceDriver.o iocRfqRfAmplifiersMain.o -lopcua -ldbRecStd -ldbCore -lca -lCom

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::getParentNode()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::getNodeName()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlElement::getChild(char const*)'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::getRootNode()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::~UaXmlDocument()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlElement::getContent(UaXmlValue&)'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlElement::getAttributeValue(char const*, UaXmlValue&)'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlElement::UaXmlElement()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::getNextSibling()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::getNamespace() const'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::cleanupParser()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlElement::UaXmlElement(UaXmlElement const&)'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::getNamespace(char const*) const'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlElement::getChildElements(char const*, std::__cxx11::list<UaXmlElement, std::allocator<UaXmlElement> >&)'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::UaXmlDocument()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::initParser()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::getChildElements(char const*, std::__cxx11::list<UaXmlElement, std::allocator<UaXmlElement> >&)'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlValue::UaXmlValue()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlElement::getParentNode()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::getFirstChild()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::loadXmlText(char const*, int, char const*)'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlDocument::getAttributeValue(char const*, UaXmlValue&)'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlElement::operator=(UaXmlElement const&)'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlValue::~UaXmlValue()'

/home/gd265689/local_tops/topOpcUa/lib/linux-x86_64/libopcua.so: undefined reference to `UaXmlElement::~UaXmlElement()'

collect2: error: ld returned 1 exit status

make[3]: *** [iocRfqRfAmplifiers] Error 1

make[3]: Leaving directory `/home/gd265689/local_tops/topOpcUa/iocBoot/iocRfqRfAmplifiers/src/O.linux-x86_64'

make[2]: *** [install.linux-x86_64] Error 2

make[2]: Leaving directory `/home/gd265689/local_tops/topOpcUa/iocBoot/iocRfqRfAmplifiers/src'

make[1]: *** [src.install] Error 2

make[1]: Leaving directory `/home/gd265689/local_tops/topOpcUa/iocBoot/iocRfqRfAmplifiers'

make: *** [iocRfqRfAmplifiers.install] Error 2



My top contains :

- sdk folder : Unified Automation SDK

- devOpcuaSup : the EPICS device support for OPC UA

- iocRfqRfAmplifiers : my IOC


Here is my CONFIG_SITE.local:


GNU_BIN = /usr/local/bin

USR_CFLAGS += -std=c11

USR_CXXFLAGS += -std=c++11

CROSS_COMPILER_TARGET_ARCHS =

XML_INCLUDE = /usr/include/libxml2

XML_DIR = /usr/lib64


# Path to the Unified Automation OPC UA C++ SDK

UASDK = /home/gd265689/local_tops/topOpcUa/sdk


# How the Unified Automation SDK shared libraries are deployed

# SYSTEM = shared libs are in a system location

# PROVIDED = shared libs are in $(UASDK_SHRLIB_DIR)

# INSTALL = shared libs are installed (copied) into this module

# EMBED = link SDK code statically into libopcua,

# SDK libraries are not required on target system

UASDK_DEPLOY_MODE = EMBED

UASDK_LIB_DIR = $(UASDK)/lib

UASDK_SHRLIB_DIR = $(UASDK_LIB_DIR)


# How the Unified Automation SDK libraries were built

UASDK_USE_CRYPTO = NO

UASDK_USE_XMLPARSER = NO


include $(TOP)/configure/CONFIG_OPCUA_VERSION




My RELEASE.local :


OPCUA = /home/gd265689/local_tops/topOpcUa/devOpcuaSup




I added the following line in devOpcuaSup makefile to get rid of “openssl not found errors”


USR_INCLUDES += -I/usr/include/openssl



Can you please help me to find what is missing in my configuration ? Thank you very much !


Gabriel Desmarchelier

CEA Paris-Saclay





Replies:
Re: Compilation of IOC using OPC UA device support Ralph Lange via Tech-talk

Navigate by Date:
Prev: Re: PV Seq not process everytime Ralph Lange via Tech-talk
Next: Re: Compilation of IOC using OPC UA device support Ralph Lange via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
Navigate by Thread:
Prev: RE: PV Seq not process everytime GAGET Alexis via Tech-talk
Next: Re: Compilation of IOC using OPC UA device support Ralph Lange via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·