Linux - SoftwareThis 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
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
"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?
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?
"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.
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.
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
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
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.