LinuxQuestions.org
Register a domain and help support LQ
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices



Reply
 
Search this Thread
Old 07-23-2007, 05:46 AM   #1
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Rep: Reputation: 15
kdevelop issue...i guess


This is the output of Kdevelop 3.4.0 when I try to "run automake and friends"
I dont understand the line shown in bold below...
And, I do have both necessary autoconf and automake installed.

Code:
cd '/home/nikolay/internship/GPS/GPSSystem' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" make -f Makefile.cvs
This Makefile is only for the CVS repository
This will be deleted before making the distribution

./admin/cvs.sh: 632: ./admin/detect-autoconf.pl: Permission denied
./admin/cvs.sh: 651: --version: not found
*** AUTOCONF NOT FOUND!.
*** KDE requires autoconf 2.53 or newer
make[1]: *** [cvs] Error 1
make: *** [all] Error 2
*** Exited with status: 2 ***
Thanks
Nik
 
Old 07-24-2007, 03:56 PM   #2
Mara
Moderator
 
Registered: Feb 2002
Location: Grenoble
Distribution: Debian
Posts: 9,539

Rep: Reputation: 149Reputation: 149
Who owns ./admin/detect-autoconf.pl ?
 
Old 07-25-2007, 03:06 AM   #3
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Original Poster
Rep: Reputation: 15
how can I check that? And what is it in any case?
I tried looking up for detect-autoconf.pl on google, but most of the first couple of pages of results were bug reports...
 
Old 07-25-2007, 03:15 AM   #4
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Original Poster
Rep: Reputation: 15
ok, i checked online for the "owner of the file on linux", and found the results about the file owner and etc...
So, made the folder of the whole project to be both read and write, and also an executable...
but still as i run automake and friends, i keep getting the same error...
This happened after I reinstalled my ubuntu. I just had this project backed up in my mailbox, and it worked perfectly fine before...
 
Old 07-25-2007, 03:46 AM   #5
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Original Poster
Rep: Reputation: 15
more updates
In the previous message I say that I have modified the rights, but actually I was modifying the rights by clicking on the main project folder, and saying something like: "apply permission to enclosed files", but then, when I looked at the detect-autoconf.pl I saw that the feature of "allow executing file as program" was not ticked... So I ticked it, and I could run automake and friends

But, now, I dunno what to do with the "there is no active target".
I can build and install the whole thing, but cannot execute. And, I did set in Automake Manager the option of set as Active target...
Oh, shit! hehe.
As i looked at the error message that was given when trying to execute...It told me smthing like:

src/gpssystem: permission denied

so, I had to modify the access right, namely the "allow executing file as program"... IT WORKS NOW!!
Finally..
Thanks for listening to me hehe
Nik

Last edited by brownflamigo1; 07-25-2007 at 06:04 AM.
 
Old 07-25-2007, 05:44 AM   #6
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Original Poster
Rep: Reputation: 15
ok, I have more problems now though...
it is qwt that gives me problems.
After I installed it, and added a thermo widget to my project and tried to build, it told me that the header <qwt_thermo.h> did not exist, so I tried replacing the path of the header with the following one: #include </home/nikolay/qwt-5.0.2/src/qwt_thermo.h>, directly to the folder of the just newly installed qwt. So, it did not give me an error of nonexistance of the header, but instead it gives me now this problem, that I dont really understand..

Code:
cd '/home/nikolay/internship/GPS/GPSSystem' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" make -k 
make all-recursive
Making all in doc
Making all in .
make[3]: Nothing to be done for `all-am'.
Making all in en
make[3]: Nothing to be done for `all'.
Making all in po
make[2]: Nothing to be done for `all'.
Making all in src
compiling gpssystemdialog.cpp (g++)
mv -f .deps/gpssystemdialog.Tpo .deps/gpssystemdialog.Po
linking gpssystem (g++)
gpssystemdialog.o: In function `GpsSystem::GpsSystem(QWidget*, char const*, unsigned int)':
gpssystemdialog.cpp:(.text+0x25e0): undefined reference to `QwtThermo::QwtThermo(QWidget*, char const*)'
gpssystemdialog.cpp:(.text+0x268d): undefined reference to `QwtThermo::QwtThermo(QWidget*, char const*)'
gpssystemdialog.cpp:(.text+0x273a): undefined reference to `QwtThermo::QwtThermo(QWidget*, char const*)'
gpssystemdialog.cpp:(.text+0x27e7): undefined reference to `QwtThermo::QwtThermo(QWidget*, char const*)'
gpssystemdialog.cpp:(.text+0x2894): undefined reference to `QwtThermo::QwtThermo(QWidget*, char const*)'
gpssystemdialog.o:gpssystemdialog.cpp:(.text+0x2941): more undefined references to `QwtThermo::QwtThermo(QWidget*, char const*)' follow
collect2: ld returned 1 exit status
make[2]: *** [gpssystem] Error 1
make[2]: Target `all' not remade because of errors.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
*** Exited with status: 2 ***
This is, like the constructor is not defined... for all of the 16 thermos that I added.... very weird. And I was getting the same problem, like a week or two weeks ago when I was trying this out, but then I had to switch to do a different task.

Please clarify whats going on No google results for
Code:
undefined reference to `QwtThermo::QwtThermo(QWidget*, char const*)'
were found.
Thanks
Nik
 
Old 07-25-2007, 09:08 AM   #7
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Original Poster
Rep: Reputation: 15
I have tried which seems to me EVERYTHING in the past couple of hours, but I could not still resolve the above problem....
I am really getting frustrated about this issue....

I tried doing something like including paths for the headers, and etc... I dont really remember everything now, but i namely tried to do:
Project Options->Configure Options->Linker Flags:-L/usr/include/qwt

and i cannot locate qwt_thermo.cpp or any other qwt_*'s
It seems as if they are missing at all.
I tried reinstalling qwt, but still.

Help out please

Last edited by brownflamigo1; 07-25-2007 at 10:13 AM.
 
Old 07-25-2007, 10:59 AM   #8
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Original Poster
Rep: Reputation: 15
Something else...
And, by the way, I was also thinking that you are a guy before I checked your website....Good that I haven't referred as "Sir" to you...

So, I found that the constructor is as follows:
QwtThermo::QwtThermo(QWidget * parent = NULL) [explicit]

So, no wonder I am getting an error like:
QwtThermo::QwtThermo(QWidget*, char const*).


So, what I tried, is just by means of rude force, to delete what was the char const* in my gpssystemdlg.cpp file, and to leave only the parent part. Part of it looks as follows:

QWTHERMO_AI15 = new QwtThermo( TAB1 );
QWTHERMO_AI15->setGeometry( QRect( 290, 160, 54, 120 ) );
QFont QWTHERMO_AI15_font( QWTHERMO_AI15->font() );
QWTHERMO_AI15_font.setPointSize( 6 );
QWTHERMO_AI15->setFont( QWTHERMO_AI15_font );


But in any case I am still getting exactly the same error...
 
Old 07-25-2007, 03:55 PM   #9
Mara
Moderator
 
Registered: Feb 2002
Location: Grenoble
Distribution: Debian
Posts: 9,539

Rep: Reputation: 149Reputation: 149
Let's clarify everything...

First compile qwt. I assume it's already done. You'll need to link to it.

Now, linking flags. You have done: Project Options->Configure Options->Linker Flags:-L/usr/include/qwt
It'd be OK for include flags (-I). -L specifies the directory where library's binary is. You should have libqwt.a somewhere in the qwt directory. -L will be something like -Lqwt/lib or, if qwt is installed, something like -L/usr/local/lib/. But the directory will be not enough. You need to tell the compiler to link your program with the library. -l option is used for this. In your case -lqwt (it means you want to link with libqwt.a).

So, finally, your linker flags should be something like
-L/usr/local/lib/ -lqwt

Then, constructors.
QwtThermo::QwtThermo(QWidget * parent = NULL) [explicit]
QwtThermo::QwtThermo(QWidget*, char const*)
I have not looked into the library, but it's standard for the Qt-based libraries to have both versions. If the char const * parameter is not given, the default should be used. So, the way you use the constructor should not cause problems.
 
Old 07-26-2007, 02:57 AM   #10
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Original Poster
Rep: Reputation: 15
let me try now...

Last edited by brownflamigo1; 07-26-2007 at 02:59 AM.
 
Old 07-26-2007, 03:24 AM   #11
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Original Poster
Rep: Reputation: 15
IT WORKS!!!
omg! finally...!
So, I dont see how making it link against -lqwt is equivalent as to linking against the libqwt.a? Is it something "like predefined" or what? i mean, that I did not have to specify the pass all the way up to the libqwt.a? And, actually I tried specifying the pass like: -l/usr/lib/libqwt.a and it gave me some WARNING about "newline something something...". weird...
I tried searching for linking in Kdevelop, but didnt really get any explanatory result, something like a step by step walkthrough. Do you have any link by any chance where I can read more about linking in Kdevelop, so that I dont bother anyone again if this sort of problem occurs
thanks again, I really appreciate you helping.

Nik
 
Old 07-28-2007, 06:03 PM   #12
Mara
Moderator
 
Registered: Feb 2002
Location: Grenoble
Distribution: Debian
Posts: 9,539

Rep: Reputation: 149Reputation: 149
It's not a KDevelop-specific issue. -l is a gcc (compiler) option. The library name form is customary and have a long tradition. You may consider it predefined. You do not need to specify the whole path in -l, but it should be known to the linker. If it's not in th edefaults, you still need to use -L option to specify the path (as I did in the example three posts above).

The manual says:
Quote:
-llibrary
Use the library named library when linking.

The linker searches a standard list of directories for the library, which is actually a file named `lib library .a'. The linker then uses this file as if it had been specified precisely by name.
The directories searched include several standard system directories plus any that you specify with `-L '.
Normally the files found this way are library files archive files whose members are object files. The linker handles an archive file by scanning through it for members which define symbols that have so far been referenced but not defined. However, if the linker finds an ordinary object file rather than a library, the object file is linked in the usual fashion. The only difference between using an `-l ' option and specifying a file name is that `-l ' surrounds library with `lib ' and `.a ' and searches several directories.
 
Old 07-29-2007, 05:54 AM   #13
brownflamigo1
Member
 
Registered: Jun 2007
Distribution: Ubuntu
Posts: 90

Original Poster
Rep: Reputation: 15
Clear:0

Thanks.
Feeling more proficient in linking now
Nik
 
  


Reply

Tags
file permission, kdevelop, linking, qt


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
NAT I guess Kruncher Linux - Networking 28 11-20-2005 09:19 AM
DNS issue or so i guess issey Linux - Newbie 2 09-19-2005 09:49 AM
Best Guess on Gnome 2.8? 2Gnu Slackware 3 09-16-2004 07:06 PM
Guess who's going to be on Enterprise? carrja99 General 18 03-11-2003 06:19 PM
So guess what Cichlid Linux - Networking 0 03-16-2002 06:22 PM


All times are GMT -5. The time now is 04:31 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration