PDA

View Full Version : "make" help (or explanation)



u-noneinc-s
30th April 2006, 08:25 PM
After replying to a thread (http://www.fedoraforum.org/forum/showthread.php?t=107350) yesterday and
reading another thread that mentioned some sound studio SW, hydrogen in particular, (don't recall that thread)
I decided to give it a go (hydrogen). It took a little work to get through ./configure, but it finally succeeded, I
went on to make.
Make hit a brick wall, and I have not been able to find the solution. It's looking for a .o file (src/tinystr.o) and
can't find it. Debug info below.
I went on the search (locally) and there are no .o files. looking into man pages, I don't see anything
about .o files. (.o is a tough search string as ALL o's appear ;) )
I googled this link http://www.tldp.org/LDP/LG/current/smith.html, and it mentions .o and what it's for, but no
mention of where it comes from. Should it (they) have been created by ./configure or should they have been
supplied in the package? Am I missing some software/dep ./configure "forgot" to mention?
I ran it once with the ignore errors flag and it of course didn't install.
I have compiled a few things in the past, but in all cases, once I got past ./configure, it was always smooth
sailing.
Any help would be appreciated.
If you need more info, I'd be happy to supply it.

GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Reading makefiles...
Updating goal targets....
File `all' does not exist.
File `hydrogenPlayer' does not exist.
Must remake target `hydrogenPlayer'.
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Reading makefiles...
Updating goal targets....
File `hydrogenPlayer' does not exist.
File `src/tinystr.o' does not exist.
Must remake target `src/tinystr.o'.
make[1]: Entering directory `/home/mark/DownLoads/hydrogen-0.9.3'
g++ -c -pipe -g -w -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-p
rotector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-un
wind-tables -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -I/usr/lib/q
t-3.3/mkspecs/default -I. -I. -Isrc -I/usr/lib/qt-3.3/include -o src/tinystr.o src/l
ib/xml/tinystr.cpp
make[1]: Leaving directory `/home/mark/DownLoads/hydrogen-0.9.3'

Thanks
MN

dshaw256
30th April 2006, 08:31 PM
Just in general, .o files are object code, the output of a compile step. The whole job Make is doing for you is compiling source to object form (.o files) then linking them into an executable.

The apparent error message is just make saying that the .o file doesn't exist so it's going to have to be built. By make. This is normal behavior.

I'm kinda new myself to Linux development, but I don't see a real error in the above quote. I see Make doing its job. Question: did the application not build correctly? This is not apparent from your post.

u-noneinc-s
30th April 2006, 09:04 PM
ThIS is as far as it gets, and it exits there. Here is the actual output displayed on the commandline (debug flag NOT set).

mark@spongie 210 /home/mark/DownLoads/hydrogen-0.9.3 =>make
make[1]: Entering directory `/home/mark/DownLoads/hydrogen-0.9.3'
g++ -c -pipe -g -w -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -I/usr/lib/qt-3.3/mkspecs/default -I. -I. -Isrc -I/usr/lib/qt-3.3/include -o src/tinystr.o src/lib/xml/tinystr.cpp
src/lib/xml/tinyxml.h:828: error: extra qualification ‘TiXmlDeclaration::’ on member ‘TiXmlDeclaration’
make[1]: *** [src/tinystr.o] Error 1
make[1]: Leaving directory `/home/mark/DownLoads/hydrogen-0.9.3'
make: *** [hydrogenPlayer] Error 2
I take it then that the error is not that it can't find [src/tinystr.o] but rather that it can't make [src/tinystr.o]?

Thanks for the .o explaination by the way. I continued to search after posting, and I saw "object" somewhere
(maybe man make) and I figured that might be what the .o was.

markkuk
30th April 2006, 10:48 PM
src/lib/xml/tinyxml.h:828: error: extra qualification ‘TiXmlDeclaration::’ on member ‘TiXmlDeclaration’


That's the actual problem, there's an error in the source code. Older versions of G++ used to ignore this error but G++ 4 in FC4 and 5 follows the standard. More info:
http://womble.decadentplace.org.uk/c++/syntax-errors.html
http://wiki.services.openoffice.org/wiki/Writing_correct_Cplusplus#Extra_Qualification

u-noneinc-s
30th April 2006, 11:20 PM
Thanks markkuk. I actually "read" src/lib/xml/tinyxml.h (I assume :828: is line #) and I had no idea what to do with it. If make
would give a little more info, I could edit the file. I'll read those links, but I'm sure i'll be back with more questions. I kind of had
the feeling it was a syntax error, and I see the first link (with the forums 'shortened" link test) ...tax-errors.html so I hope I'm
starting to "guess" right on some of this stuff.
Don't know if this matters, but line 828 was "tabbed" way in from the rest of the lines (it actually started near the end of
line 828) starting point is 828,11-81. Probably nothing as the previous line is the same, but it looks out of place.

Thanks to dshaw256 also.
As the Governator says, "I'll be back".

u-noneinc-s
1st May 2006, 01:47 AM
I have to learn to google a little better. I don't know how helpful yet, but <tinyxml.h:828:> returned quite a bit of
stuff, and it seems to pertain to hydrogen. :rolleyes:
--
D'Oh :eek:

Markkuk, Those links didn't help a whole lot. I could definately see the diff in their examples, but their examples
in no way resembles what I see in tinyxml.h:828:. They were however informative and they are bookmarked.

I'm going to read some of the links I just googled and try to figure this thing out. If I don't succeed, I'll post the
relavent lines and see if anyone can point me in the right direction.

I would ask one more thing. Am I correct about :828: being the offending line number?
Thanks
MN

markkuk
1st May 2006, 08:24 AM
Markkuk, Those links didn't help a whole lot. I could definately see the diff in their examples, but their examples
in no way resembles what I see in tinyxml.h:828:. They were however informative and they are bookmarked.

That's strange, I downloaded hydrogen myself and the error on line 828 in tinyxml.h looks exactly like the "extra qualification" examples in the links I provided. Note that the line number says where the offending construct ends, the actual error is two lines above where the declaration starts.

All you need to do to fix the error is delete the extra "TiXmlDeclaration::" from the constructor declaration.

u-noneinc-s
1st May 2006, 09:15 PM
That's strange, I downloaded hydrogen myself and the error on line 828 in tinyxml.h looks exactly like the "extra qualification" examples in the links I provided. Note that the line number says where the offending construct ends, the actual error is two lines above where the declaration starts.

All you need to do to fix the error is delete the extra "TiXmlDeclaration::" from the constructor declaration.

I tried a bunch of different things yesterday (before I got your last reply). I lost track of what I did/didn't do so I just did a
rm -r hydrogen-0.9.3. Figured I'd get a fresh start today. Got things to do now, but this evening I'll check it out and let you
know what I find. If it does resemble the examples in any way, I guess I'll know which line is wrong.
Thanks

u-noneinc-s
2nd May 2006, 01:42 AM
Thanks markkuk
Making as I type :cool:
I still didn't see the similarity (except for the double colun) but if I knew code, I guess I would have. In this case is c::m referring to TiXmlDeclaration::TiXmlDeclaration?
I know nothing of class and member and declarations and all that.

Finished, however ... (and I haven't done make install yet) ...
./hydrogen: error while loading shared libraries: libjack.so.0: cannot open shared object file: No such file or directory. It did compile successfully.
locate libjack.so.0
/usr/local/lib/libjack.so. I have to figure out how to link it and do the shared lib thng. I think I can figure that out.
I've only done it once before, but it'll come to me.
Thanks
MN

u-noneinc-s
2nd May 2006, 05:11 AM
Very Kewel program and it works like a charm. Thanks for the help markkuk.

As far as the fix was concerned, all I can say is I MUST NEED NEW GLASSES. You told me exactly how to fix it and I looked
right past it and thought you were giving me a hint. It couldn't have been any more "black and white"

As for the shared libs, I knew I'd figure that out sooner or later. It took me a while to remember ldconfig, and as soon as I remembered
that, the man was all I needed.