LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 04-06-2005, 03:22 PM   #1
jiapei100
Member
 
Registered: Jan 2005
Location: Surrey, BC, Canada
Distribution: Ubuntu 12.04
Posts: 70

Rep: Reputation: 15
Serious GNOME compiling problem!! Urgently...


Hello everyone. I am really unhappy with my FC3 compiler!!!! I do need your prompt help!! Thanks..

I happened to find a wavelet software named libwavelet-1.0 in sourceforge. And I successfully install it in SuSE 9.2 KDE. However, when I tried to "make" it in FC3 GNOME, the following error messages jump out:

g++ -c -I.. -I. -DPFI -DJPEG -O3 -DDPRINTF -Wall -Werror -ansi -pedantic VideoFrame.cc -o VideoFrame.o
In file included from WImage/VideoFrame.hh:13,
from VideoFrame.cc:11:
./WImage/VideoArray.hh: In member function `T VideoArray<T>::at(int, int) const':
./WImage/VideoArray.hh:63: error: `m_ar' undeclared (first use this function)
./WImage/VideoArray.hh:63: error: (Each undeclared identifier is reported only o nce for each function it appears in.)
./WImage/VideoArray.hh: In member function `virtual T VideoArray<T>::at(int) const':
./WImage/VideoArray.hh:70: error: `m_ar' undeclared (first use this function)
./WImage/VideoArray.hh: In member function `void VideoArray<T>::to(int, int, T)':
./WImage/VideoArray.hh:79: error: `m_ar' undeclared (first use this function)
./WImage/VideoArray.hh: In member function `virtual void VideoArray<T>::to(int,T)':
./WImage/VideoArray.hh:85: error: `m_ar' undeclared (first use this function)
./WImage/VideoArray.hh: In member function `virtual int VideoArray<T>::abs(int,int) const':
./WImage/VideoArray.hh:94: error: `m_rows' undeclared (first use this function)In file included from ./WImage/VideoArray.hh:211,
from WImage/VideoFrame.hh:13,
from VideoFrame.cc:11:
./WImage/../VideoArray.cc: In constructor `VideoArray<T>::VideoArray(int, int, i nt)':
./WImage/../VideoArray.cc:26: error: `m_rows' undeclared (first use this function)
./WImage/../VideoArray.cc:27: error: `m_ar' undeclared (first use this function)./WImage/../VideoArray.cc:28: error: `m_ysize' undeclared (first use this function)
./WImage/../VideoArray.cc:29: error: `m_xsize' undeclared (first use this function)
./WImage/../VideoArray.cc:31: error: `m_xysize' undeclared (first use this function)
./WImage/../VideoArray.cc:44: error: there are no arguments to `updateRowsArray' that depend on a template parameter, so a declaration of `updateRowsArray' must be available
./WImage/../VideoArray.cc:44: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
./WImage/../VideoArray.cc: In destructor `virtual VideoArray<T>::~VideoArray()':./WImage/../VideoArray.cc:50: error: `m_ar' undeclared (first use this function)./WImage/../VideoArray.cc:51: error: `m_rows' undeclared (first use this function)
./WImage/../VideoArray.cc: In member function `void VideoArray<T>::current(int)':
./WImage/../VideoArray.cc:62: error: `m_xysize' undeclared (first use this function)
./WImage/../VideoArray.cc: In member function `bool VideoArray<T>::epsilonsFrames(int, int, T) const':
./WImage/../VideoArray.cc:79: error: `m_xysize' undeclared (first use this function)
./WImage/../VideoArray.cc:88: error: `m_ar' undeclared (first use this function)./WImage/../VideoArray.cc: In member function `virtual void VideoArray<T>::resize(int, int)':
./WImage/../VideoArray.cc:158: error: `m_ysize' undeclared (first use this function)
./WImage/../VideoArray.cc:159: error: `m_xsize' undeclared (first use this function)
./WImage/../VideoArray.cc:168: error: `m_xysize' undeclared (first use this function)
./WImage/../VideoArray.cc:174: error: `m_ar' undeclared (first use this function)
./WImage/../VideoArray.cc:202: error: there are no arguments to `updateRowsArray' that depend on a template parameter, so a declaration of `updateRowsArray' must be available
./WImage/../VideoArray.cc: In member function `virtual void VideoArray<T>::reframe(int, bool)':
./WImage/../VideoArray.cc:236: error: `m_xysize' undeclared (first use this function)
./WImage/../VideoArray.cc:245: error: `m_ar' undeclared (first use this function)
./WImage/../VideoArray.cc: In member function `virtual void VideoArray<T>::import(int, int, int, T*)':
./WImage/../VideoArray.cc:283: error: `m_ar' undeclared (first use this function)
./WImage/../VideoArray.cc:285: error: `m_ysize' undeclared (first use this function)
./WImage/../VideoArray.cc:286: error: `m_xsize' undeclared (first use this function)
./WImage/../VideoArray.cc:287: error: `m_xysize' undeclared (first use this function)
./WImage/../VideoArray.cc:289: error: there are no arguments to `updateRowsArray' that depend on a template parameter, so a declaration of `updateRowsArray' must be available
./WImage/../VideoArray.cc: In member function `virtual VideoArray<T>* VideoArray<T>::cloneVideo() const':
./WImage/../VideoArray.cc:295: error: `m_ysize' undeclared (first use this function)
./WImage/../VideoArray.cc:295: error: `m_xsize' undeclared (first use this function)
./WImage/../VideoArray.cc:299: error: `m_xysize' undeclared (first use this function)
./WImage/../VideoArray.cc:303: error: `m_ar' undeclared (first use this function)
./WImage/../VideoArray.cc: In member function `virtual ImageArray<T>* VideoArray<T>::clone() const':
./WImage/../VideoArray.cc:312: error: `m_ysize' undeclared (first use this function)
./WImage/../VideoArray.cc:312: error: `m_xsize' undeclared (first use this function)
./WImage/../VideoArray.cc:313: error: `m_xysize' undeclared (first use this function)
./WImage/../VideoArray.cc: In member function `virtual void VideoArray<T>::copy(ImageArray<T>&)':
./WImage/../VideoArray.cc:332: error: `m_ysize' undeclared (first use this function)
./WImage/../VideoArray.cc:333: error: `m_xsize' undeclared (first use this function)
./WImage/../VideoArray.cc:334: error: `m_xysize' undeclared (first use this function)
./WImage/../VideoArray.cc:339: error: `m_ar' undeclared (first use this function)
./WImage/../VideoArray.cc:344: error: there are no arguments to `updateRowsArray' that depend on a template parameter, so a declaration of `updateRowsArray' must be available


Actually, I checked the file VideoFrame.hh, there is a definition as the following:
template<class T> class
VideoArray : public ImageArray <T>
{
...
inline T at (int y, int x) const { return m_ar[abs (y, x)]; }
...
}

while, in ImageArray.hh
template<class T> class
ImageArray
{
...
protected:
/** The actual array. */
T *m_ar;
...
}

I think it's correct, isn't it? I mean, the "m_ar" is a protected variable of parent class ImageArray, which is certainly can be used by the inherit class VideoArray. But, why when I did "make", it still told me something wrong? Is there anything to do with GNOME and KDE?

Anybody who can help me? I'm really really anxious and annoying on this kind of problem.

Thank you very much...

Cheers
JIA Pei
 
Old 04-06-2005, 09:55 PM   #2
jailbait
LQ Guru
 
Registered: Feb 2003
Location: Virginia, USA
Distribution: Debian 12
Posts: 8,337

Rep: Reputation: 548Reputation: 548Reputation: 548Reputation: 548Reputation: 548Reputation: 548
"I happened to find a wavelet software named libwavelet-1.0 in sourceforge. And I successfully install it in SuSE 9.2 KDE. However, when I tried to "make" it in FC3 GNOME, the following error messages jump out:"

The problem may be in gcc. What version of gcc did you use on SuSE 9.2 and what version of gcc did you use on FC3?

-----------------------------
Steve Stites
 
Old 04-07-2005, 04:21 AM   #3
jiapei100
Member
 
Registered: Jan 2005
Location: Surrey, BC, Canada
Distribution: Ubuntu 12.04
Posts: 70

Original Poster
Rep: Reputation: 15
Thank you very much for only you replied me...

I got my gcc version in SuSE 9.2 and FC3...

My gcc in SuSE 9.2 is

gcc 3.3.4 ( pre 3.3.5 20040809)

My gcc in FC3 is

gcc 3.4.2 20041017 (Red Hat 2.4.2-6.fc3)

I think my gcc in FC3 should be suitable for compiling that libwavelet-1.0, right?

Is there anything to do with the difference between GNOME and KDE? Besides, is there anything to do with my FC3 system settings?

Cheers,
JIA


Quote:
Originally posted by jailbait
"I happened to find a wavelet software named libwavelet-1.0 in sourceforge. And I successfully install it in SuSE 9.2 KDE. However, when I tried to "make" it in FC3 GNOME, the following error messages jump out:"

The problem may be in gcc. What version of gcc did you use on SuSE 9.2 and what version of gcc did you use on FC3?

-----------------------------
Steve Stites
 
Old 04-07-2005, 10:57 AM   #4
jailbait
LQ Guru
 
Registered: Feb 2003
Location: Virginia, USA
Distribution: Debian 12
Posts: 8,337

Rep: Reputation: 548Reputation: 548Reputation: 548Reputation: 548Reputation: 548Reputation: 548
"Is there anything to do with the difference between GNOME and KDE?"

I doubt it, but I cannot be certain that the difference between Gnome and KDE is not the problem.

"Besides, is there anything to do with my FC3 system settings?"

The only possible problem that I can think of with FC3 settings is that your file tree might be enough different from the SuSE file tree that gcc cannot find VideoArray.hh. But the error messages seem to say that gcc found VideoArray.hh but did not compile VideoArray.hh correctly. Even so I cannot rule out the possibility that there is something different about the FC3 file tree that throws gcc off. You could check and see if VideoArray.hh is installed in the same place on both SuSE and FC3 and if both of the gcc commands that you issued point to the proper place to find VideoArray.hh.

"I think my gcc in FC3 should be suitable for compiling that libwavelet-1.0, right?"

It should work. The thought that hit me was that you might have run into a bug in the latest version of gcc. Try copying the libwavelet-1.0 binary that you compiled on SuSE to FC3. Check your glibc version numbers on both SuSE and FC3. If both systems are running the same version of glibc then the SuSE libwavelet-1.0 binary should work on FC3. If the glibc versions are different then the difference in the 2 glibs may or may not cause the SuSE binary to fail on FC3.

You could also try installing gcc 3.3.4 ( pre 3.3.5 20040809) on FC3 and see if that works. However that may also require you to change glibc and several other packages and the whole test could get very messy so I recommend that you not try switching gcc versions unless you have exhausted all other possibilities.

-------------------------
Steve Stites

Last edited by jailbait; 04-07-2005 at 10:59 AM.
 
Old 04-07-2005, 03:15 PM   #5
jiapei100
Member
 
Registered: Jan 2005
Location: Surrey, BC, Canada
Distribution: Ubuntu 12.04
Posts: 70

Original Poster
Rep: Reputation: 15
You are totally right!!!!

I'm sure now that it is exactly my GCC version problem!!!!
GCC-3.4 made the error messages that I have. I don't know whether I have some method to solve this problem without changing my GCC-3.4 back to GCC-3.3???

Cheers

Quote:
Originally posted by jailbait

"I think my gcc in FC3 should be suitable for compiling that libwavelet-1.0, right?"

It should work. The thought that hit me was that you might have run into a bug in the latest version of gcc. Try copying the libwavelet-1.0 binary that you compiled on SuSE to FC3. Check your glibc version numbers on both SuSE and FC3. If both systems are running the same version of glibc then the SuSE libwavelet-1.0 binary should work on FC3. If the glibc versions are different then the difference in the 2 glibs may or may not cause the SuSE binary to fail on FC3.

You could also try installing gcc 3.3.4 ( pre 3.3.5 20040809) on FC3 and see if that works. However that may also require you to change glibc and several other packages and the whole test could get very messy so I recommend that you not try switching gcc versions unless you have exhausted all other possibilities.

-------------------------
Steve Stites
 
Old 04-07-2005, 03:28 PM   #6
foo_bar_foo
Senior Member
 
Registered: Jun 2004
Posts: 2,553

Rep: Reputation: 53
gcc project is slowly moving us toward a more standards compiant and name safe implementation of c++ so slowly our old lax way of doing things no longer works

the source code just needs to be fixed and the bug is in the code not the compiler
 
Old 04-07-2005, 04:44 PM   #7
jiapei100
Member
 
Registered: Jan 2005
Location: Surrey, BC, Canada
Distribution: Ubuntu 12.04
Posts: 70

Original Poster
Rep: Reputation: 15
Thank you very much!!
Mission completed!!!

It's just because GCC-3.4 is much more strict with inherit template. I used "this->m_**" whenever I use the protected variables of the parent class, it seems everything is ok now!! I'm not sure whether this is the only thing that I've to change. But, after I revised the whole file according to the "make error messages", the libwavelet-1.0 was successfully made!!

Quote:
Originally posted by foo_bar_foo
gcc project is slowly moving us toward a more standards compiant and name safe implementation of c++ so slowly our old lax way of doing things no longer works

the source code just needs to be fixed and the bug is in the code not the compiler
 
  


Reply



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
Help me Urgently cherukumilli Linux - General 3 12-29-2004 12:17 PM
Somebody urgently help me !!! apache *BSD 2 07-21-2004 07:01 AM
Help urgently PLEASE???? timmy_laf Linux - General 5 01-08-2004 04:55 AM
Need Help Urgently andrewt Linux - Software 4 08-07-2003 02:57 PM
Need help urgently Thomas.P Linux - Newbie 2 05-30-2001 01:43 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 12:00 PM.

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
Open Source Consulting | Domain Registration