LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   PerlQT not getting installed in fedora 13 - 64 bit. (https://www.linuxquestions.org/questions/linux-newbie-8/perlqt-not-getting-installed-in-fedora-13-64-bit-860126/)

anoopbt 02-01-2011 10:47 PM

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.

Tinkster 02-01-2011 11:05 PM

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

anoopbt 02-02-2011 02:18 AM

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?

knudfl 02-02-2011 04:45 AM

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:

cd Qt4-0.60_b1/ && perl Build.PL , the reply starts with :
Checking prerequisites...
* Optional prerequisite Alien::QtSmoke is not installed

May be it it got Build.pm from 'perl-Module-Build-0.3500-112.fc13.x86_64'.

# yum install \
perl-Module-Build-0.3500-112.fc13.x86_64 kdebindings-devel-4.5.5-1.fc13.x86_64 \
perl-File-Fetch-0.20-120.fc13.x86_64 gdbm-devel-1.8.0-33.fc12.x86_64 \
db4-devel-4.8.30-1.fc13.x86_64

(If you want to build Alien-QtSmoke :
perl-File-Fetch, gdbm-devel, db4-devel are required.)
( And kdebindings-devel has 'smoke.h' required by Qt4-0.60_b1/ ).

A second try with cd Qt4-0.60_b1/ && mkdir build && cd build &&
cmake .. && make : failed too.

Finding non installed files : # yum provides */<file>
( Like # yum provides */Build.pm ).

..

anoopbt 02-03-2011 02:55 AM

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?

...

knudfl 02-03-2011 08:20 AM

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.

..

Doug Hutcheson 03-13-2011 10:00 PM

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.

anoopbt 03-14-2011 01:50 AM

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.