PerlQT not getting installed in fedora 13 - 64 bit.
Hi,
I am new to Qt, and i want to make one GUI for my project in perlQT. I am using 64 bit fc13. I downloaded QtCore-4.004 from Softpedia site and ran the Makefile.PL. Then i do a "make". But that is giving some errors. The error being, --------------------------------------------------------------------------------------------------------------------------------------------- . . . . QAbstractFileEngine.xs: In function ‘void XS_Qt__QAbstractFileEngine_extension(PerlInterpreter*, CV*)’: QAbstractFileEngine.xs:253: error: ‘ExtensionOption’ was not declared in this scope QAbstractFileEngine.xs:253: error: ‘option’ was not declared in this scope QAbstractFileEngine.xs:255: error: expected primary-expression before ‘)’ token QAbstractFileEngine.xs:264: error: ‘ExtensionOption’ was not declared in this scope QAbstractFileEngine.xs:264: error: ‘option’ was not declared in this scope QAbstractFileEngine.xs:265: error: ‘ExtensionReturn’ was not declared in this scope QAbstractFileEngine.xs:265: error: ‘output’ was not declared in this scope QAbstractFileEngine.xs:267: error: expected primary-expression before ‘)’ token QAbstractFileEngine.xs:270: error: expected primary-expression before ‘)’ token . . . . ----------------------------------------------------------------------------------------------------------------------------------------------- I have read in some forum that, in Makefile.PL line no: 31 u have to change 'arcs' to 'args'. But still i am not being able to install PerlQt. Please help me to solve this issue. thanks in advance, Anoop. |
Hi, welcome to LQ!
I'm not sure what softpedias qtCore is/offers, but if you're looking for perl bindings for Qt4, why not start here? Cheers, Tink |
Hi Tink,
Thanks for the reply. I have downloaded " Qt4-0.60_b1.tar.gz " from the link u mentioned and tried to install. When i ran the " perl Build.pl " some errors are coming like, ------------------------------------------------------- Can't locate Module/Build.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.10.1 /usr/lib/perl5/site_perl .) at Build.PL line 20. BEGIN failed--compilation aborted at Build.PL line 20. --------------------------------------------------------- what i have to do? |
Building Qt4-0.60_b1 on Fedora 13 - 64 : Seems, that it is possible :
http://code.google.com/p/perlqt4/issues/detail?id=33 (Ubuntu example) My build failed, here are my notes : Quote:
Finding non installed files : # yum provides */<file> ( Like # yum provides */Build.pm ). .. |
I installed all necessary dependencies for Qt4. Module Alien::QtSmoke is only an optional pre requisite. That is what, running "perl Build.PL" is telling.
Then i ran "./Build". Now errors are coming. I am copying it here. --------------------------------------------------------------------------------------------------------------------- [user@user Qt4-0.60_b1]$ ./Build gcc -Isrc -I/usr/lib64/perl5/CORE -fPIC -std=gnu++98 -Wall -xc++ -I. -DQT_SHARED -I/usr/include/QtGui -I/usr/include/QtCore -I/usr/include/QtXml -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -o src/marshall_types.o src/marshall_types.cpp In file included from src/marshall_types.cpp:7: src/marshall_types.h:10:20: error: EXTERN.h: No such file or directory src/marshall_types.h:11:18: error: perl.h: No such file or directory src/marshall_types.h:12:18: error: XSUB.h: No such file or directory In file included from src/marshall_types.h:13, from src/marshall_types.cpp:7: src/ppport.h:2640:28: error: patchlevel.h: No such file or directory src/ppport.h:2643:48: error: could_not_find_Perl_patchlevel.h: No such file or directory In file included from src/marshall_types.h:13, from src/marshall_types.cpp:7: src/ppport.h:3391: error: expected initializer before ‘*’ token src/ppport.h:3433: error: expected initializer before ‘*’ token src/ppport.h:3464: error: variable or field ‘CAT2’ declared void src/ppport.h:3464: error: ‘DPPP_’ was not declared in this scope src/ppport.h:3464: error: ‘my_newCONSTSUB’ was not declared in this scope src/ppport.h:3652: warning: ‘CAT2’ initialized and declared ‘extern’ src/ppport.h:3652: error: ‘DPPP_’ was not declared in this scope src/ppport.h:3652: error: ‘my_sv_2pv_nolen’ was not declared in this scope src/ppport.h:3652: error: initializer expression list treated as compound expression src/ppport.h:3652: error: expected ‘,’ or ‘;’ before ‘(’ token src/ppport.h:4372: warning: ‘CAT2’ initialized and declared ‘extern’ src/ppport.h:4372: error: conflicting declaration ‘bool CAT2’ src/ppport.h:3652: error: ‘CAT2’ has a previous declaration as ‘char* CAT2’ src/ppport.h:4372: error: ‘DPPP_’ was not declared in this scope src/ppport.h:4372: error: ‘my_grok_numeric_radix’ was not declared in this scope src/ppport.h:4430: warning: ‘CAT2’ initialized and declared ‘extern’ src/ppport.h:4430: error: conflicting declaration ‘int CAT2’ src/ppport.h:3652: error: ‘CAT2’ has a previous declaration as ‘char* CAT2’ src/ppport.h:4430: error: ‘DPPP_’ was not declared in this scope src/ppport.h:4430: error: ‘my_grok_number’ was not declared in this scope src/ppport.h:4644: error: ‘UV’ does not name a type src/ppport.h:4746: error: ‘UV’ does not name a type src/ppport.h:4848: error: ‘UV’ does not name a type In file included from src/marshall_types.h:15, from src/marshall_types.cpp:7: src/marshall.h:21: error: ISO C++ forbids declaration of ‘SV’ with no type src/marshall.h:21: error: ‘SV’ declared as a ‘virtual’ field src/marshall.h:21: error: expected ‘;’ before ‘*’ token In file included from src/marshall_types.h:17, from src/marshall_types.cpp:7: src/smokeperl.h:17: error: ‘SV’ has not been declared src/smokeperl.h:17: error: ‘SV’ has not been declared src/smokeperl.h:28: error: ‘sv_obj_info’ declared as an ‘inline’ variable src/smokeperl.h:28: error: ‘SV’ was not declared in this scope src/smokeperl.h:28: error: ‘sv’ was not declared in this scope src/smokeperl.h:28: error: expected ‘,’ or ‘;’ before ‘{’ token error building src/marshall_types.o from 'src/marshall_types.cpp' at /usr/share/perl5/ExtUtils/CBuilder/Base.pm line 175. --------------------------------------------------------------------------------------------------------------------- I have seen similar errors in CPAN testers report. (http://www.cpantesters.org/cpan/repo...7-601d06264d1f). But nowhere i have seen a solution for this problem. Can anyone help? ... |
The missing perl headers : EXTERN.h perl.h XSUB.h patchlevel.h
# yum provides */perl.h # yum install perl-devel Ref. post # 4 : As you can read, it was possible to build Qt4-0.60_b1 in Ubuntu 9.10 using 'cmake'. There is no information saying, it's possible at all with 'perl Build'. By my opinion it is not possible to build on Fedora 13 - 64bits. Please try yourself to search for solutions, using Google. .. |
I have given up trying to get Perl Qt4 installed on my Fedora 14 x86_64 box. The alternatives seem to be:
1. Use Perl Tk (which I have done successfully) 2. Use Perl Qt3 (which seems to work, but see below) or 3. Switch from Perl to Python and use Qt4 there (which I have done successfully) Qt seems to be the GUI of choice now, but Perl Qt4 seems to have died on the vine, so I am switching horses from Perl to Python as my scripting language of choice. It seems a pity to throw away my Perl knowledge, but I see no alternative. It took some hammering and nailing as root to get Perl Qt3 installed. The steps were (WARNING: THESE STEPS WORKED FOR ME ON MY SYSTEM - YOU NEED TO BE AWARE THAT THEY REQUIRE YOU TO DO POTENTIALLY DANGEROUS THINGS AS root USER ON YOUR SYSTEM AND I GIVE NO GUARANTEE THAT YOUR MACHINE WILL REMAIN USABLE IF YOU DO AS I DID.): 1. su - root (dangerous, but saves time) 2. cpan Qt 3. The compiler fails after a while, with a message that library smokedata needs to be recompiled with the -fPIC option. 4. Navigate to the home directory for the cpan install. On my system, that was /root/.cpan/build/PerlQt-3.008-Z_ImvY, but the last characters after the final '-' will be different on your system. 5 "make distclean", to get rid of the half-baked mess. 6. Navigate to the subdirectory 'smoke/qt'. 7. Edit the file 'Makefile.in' 8. Append " -fPIC" to the entries for CPPFLAGS and CXXFLAGS, so they look like: CPPFLAGS = @CPPFLAGS@ -fPIC CXXFLAGS = @CXXFLAGS@ -fPIC (It may well be that only one of those needs changing, but I did not take the time to find out) 9. Navigate back to the parent build directory (as per step 4 above) 10. Now take your courage in both hands and force the PerlQt module to install by executing the command (still as root): "cpan -f ." WARNING: The force (-f) flag is dangerous, so don't complain here if something breaks on your system as a result. I had to use -f to force the installer to ignore failed tests. The failures were caused by problems which are still lurking on my system and I have deliberately taken the chance that enough will work for me to build to GUI I want. If I get unpleasant side-effects, I have only myself to blame. 11. Try a simple "Hello World" script. This works for me (taken directly from here): use Qt; my $a = Qt::Application(\@ARGV); my $hello = Qt::PushButton("Hello World!", undef); $hello->resize(160, 25); $a->setMainWidget($hello); $hello->show; exit $a->exec; If it works, congratulations - you have got as far as I have. If it melts your hard disk and draws naughty pictures on your terminal, don't complain here, because you have been warned that this is a complete kludge which seems to work for me. Ymmv. Cheers, Doug. |
Thanks all for your help.
I have failed in installing PerlQT4. So i dropped that idea, and now working in C++ QT. Have seen that support for perl QT4 is also not there. -- Cheers, Anoop. |
All times are GMT -5. The time now is 08:19 AM. |