Hello,

My objective is to develop an RCC worker that can utilise an external library which is not inherently integrated into openCPI. With standard C++, I would achieve this by simply adding the required include path and library to the makefile.

As an example, I attempted to construct a worker that could host a CivetWeb server. The first issue I ran into was getting the worker to build, giving the error:

In file included from source.cc:14:

web.h:4:10: fatal error: CivetServer.h: No such file or directory

    4 | #include “CivetServer.h”

      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compilation terminated.

To determine if this was the sole problem, as a temporary solution I created a folder named 'civetweb' within 'source.rcc' containing the civetweb source code. Allowing it to be accessed directly. The component then compiled successfully.


I created an application that solely comprised of this worker, but when trying to run the application I got the following error:

app failed: Could not open RCC worker file /…/local.examples.source.rcc.0.ubuntu22_04.so: error loading "/…/local.examples.source.rcc.0.ubuntu22_04.so": /…/local.examples.source.rcc.0.ubuntu22_04.so: undefined symbol: _ZN12CivetHandler9handleGetEP11CivetServerP13mg_connectionPi

make: *** [/…/opencpi/cdk/include/application.mk:70: run] Error 1


Has anyone successfully used an external C++ library in a worker in this way? Any guidance would be really appreciated.

Thanks in advance,

Dan