Embedding perl in Qt
Matthew Pressly <[email protected]> Tue, 5 Sep 2006 14:03:21 -0500
| Newsgroups | gmane.comp.kde.devel.perl |
|---|---|
| Message-ID | <[email protected]> |
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 [email protected]