[Kde-perl] Embedding perl in Qt
Matthew Pressly
mpressly at claborn.net
Tue Sep 5 21:03:21 CEST 2006
As an alternative to using qt-perl, is it possible to embed a
perl interpreter (like what's described in the perlembed manpage
in the perl documentation) in a C++ QT3 or QT4 application so
that perl subroutines and code can be called from the C++ code?
I know this can be done from a non-QT C application, but have
not been able to get it working from C++ with QT3.
Here is what I have tried so far:
With a working main.cpp for the metric conversion utility described
in the QT3 documentation, I added the following two lines that
are needed for an embedded perl interpreter:
#include <EXTERN.h>
#include <perl.h>
Compiling this as normal fails because the libraries are not found:
main.cpp:3:20: EXTERN.h: No such file or directory
main.cpp:4:18: perl.h: No such file or directory
I tried adding in options produced by this:
perl -MExtUtils::Embed -e ccopts -e ldopts
as follows:
g++ -c -pipe -O2 -march=i586 -mcpu=i686 -fmessage-length=0 \
-fPIC -Wall -W -O2 -march=i586 -mcpu=i686 -fmessage-length=0 \
-fPIC -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT \
-DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/lib/qt3/mkspecs/default \
-I. -I/usr/include -I/usr/lib/qt3/include -I.ui/ -I. -I.moc/ \
`perl -MExtUtils::Embed -e ccopts -e ldopts` -o .obj/main.o main.cpp
but that gives the following error:
g++: cannot specify -o with -c or -S and multiple compilations
which seems to result from the inclusion of:
/usr/lib/perl5/5.8.1/i586-linux-thread-multi/auto/DynaLoader/DynaLoader.a
that is produced by:
`perl -MExtUtils::Embed -e ccopts -e ldopts`
Any pointers or documentation links would be greatly appreciated.
--
Matthew
mpressly at claborn.net
More information about the Kde-perl
mailing list