Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linking with DBUILD_AS_PLUGINS=1 fails #175

Open
TBRTechSAT opened this issue Mar 23, 2018 · 2 comments
Open

Linking with DBUILD_AS_PLUGINS=1 fails #175

TBRTechSAT opened this issue Mar 23, 2018 · 2 comments

Comments

@TBRTechSAT
Copy link

....
[ 75%] Building CXX object src/uscxml/plugins/ioprocessor/CMakeFiles/ioproc_basichttp.dir/__/Plugins.cpp.o
Linking CXX shared library ../../../../lib/plugins/libioproc_basichttp.so
CMakeFiles/ioproc_basichttp.dir/http/HTTPIOProcessor.cpp.o: In function `pluginConnect':
/var/lib/jenkins/workspace/uscxml-CentOS7/uscxml/src/uscxml/plugins/ioprocessor/http/HTTPIOProcessor.cpp:55: multiple definition of `pluginConnect'
CMakeFiles/ioproc_basichttp.dir/basichttp/BasicHTTPIOProcessor.cpp.o:/var/lib/jenkins/workspace/uscxml-CentOS7/uscxml/src/uscxml/plugins/ioprocessor/basichttp/BasicHTTPIOProcessor.cpp:51: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [lib/plugins/libioproc_basichttp.so] Error 1
make[1]: *** [src/uscxml/plugins/ioprocessor/CMakeFiles/ioproc_basichttp.dir/all] Error 2
make: *** [all] Error 2
Build step 'Execute shell' marked build as failure
Finished: FAILURE
@sradomski
Copy link
Member

I am afraid that building with plugins is still very much experimental due to the missing ABI specification of C++. It used to work with llvm and gcc, but was always rather fragile. I am more inclined to drop the feature than to support it.

@TBRTechSAT
Copy link
Author

I find the use of plugins very well suited to the dynamic execution of SCXML script. If I have to handle a new custom feature in SCXML (invoker, datamodel...), I prefer to only compile and distribute an additional plugin. The missing ABI spec for C++ is not a problem for me because I will create a plugin for a specific target (OS + architecture + compiler).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants