On Tue, 07 Apr 2009, Szak�ts Viktor wrote: > > See the messages from Guy Roussin. > > He tries to inform you that it's broken sending -trace output and > > you are systematically ignoring his messages. I have no idea what > > else we can do for you. > No I didn't ignore it, but spent two hours trying to find the > cause, and found one which fixed it here, committed it, > sent comment in ChangeLog entry, answered Guy's > messages, plus implemented some requests, asked for > feedback and got ignored. > Pls don't bend the facts. Or pls go along and fix it if it > doesn't work for you. > I guess it wouldn't have hurt if you'd post your -trace -info > output, which I didn't receive so far either from you or Guy. > Unbelievable.
Probably it's result of my fatal English and you do not understand me. Let's try again from the beginning. On some platforms like Linux libraries use strict prefix and suffix. When you call gcc (and to be precise ld using gcc as wrapper) then you can specify libraries in two ways: 1. giving them explicitly with full name and path if necessary, f.e.: libharbour.so or libhbvm.a 2. using -l option, f.e. -lharbour or -lhbvm In the second case GCC respects also -L option and looks for given libraries in directories specified by -L option and default library paths (the exact paths depends on used system configuration). To the name given after -l parameter is added library prefix and suffix used for shared and static libraries. Usually shared libraries have higher priority then static ones so 1-st it looks for them until -static option is not used. It means that when you use: -llibharbour then gcc in systems like Linux looks for liblibharbour.so and then for liblibharbour.a. In both cases we have double lib prefix so it cannot work until we do not rename our libharbour.so to liblibharbour.so or create such link. This is the problem and I thought we clearly tried to tell you about it. I have no idea from were you found information that it may work for you. For sure it's not possible that it will work with the systems where strict library prefix is used like Linux. Here you are using -lm for math library, -lc for C library, -lz for zlib library, etc. Not -llibm, -llibc, -llibz, ... which simply will not work. AFAIR few weeks ago I was writing very similar message to this list. I do not think that -trace -info output can help you in understanding the above fact in any way anyhow I'm attaching it. For me all what you have to do is removing the lib prefix from -llibharbour what Guy asked you in the 1-st message: ,---------------------------------------------------------------------- | hbmk: Processing configuration: /usr/bin/hbmk.cfg | Harbour 1.1.0dev (Rev. 10781) | Copyright (c) 1999-2009, http://www.harbour-project.org/ | Compiling 't.prg'... | Lines 1, Functions/Procedures 1 | Generating C source output to 't.c'... Done. | /usr/bin/ld: cannot find -llibharbour | collect2: ld returned 1 exit status | hbmk: Error: Running C compiler. 256: | gcc t.c /tmp/hbmk_lzvh26.c -O3 -ot -I/usr/include/harbour | -L/usr/lib/harbour -Wl,--start-group -llibharbour -lhbcplr -lhbdebug | -Wl,--end-group | | notice : -llibharbour | i suppose it must be -lharbour ? `---------------------------------------------------------------------- IMHO it contains whole information necessary to locate and fix the problem with correct conclusion about the reason of problem and I honestly have to say that I do not understand your answers how your modifications may change gcc/ld behavior in Linux. If the above is not clear enough then sorry but I'm not able to help you. The only one think which can be interesting for me is the answer what is 'here' when you were writing: >> Here it works (and it always did, moreover it >> did work other too) and I don't understand why can it work >> here and why not on other distros or installations. ??? best regards, Przemek druzus:/tmp/23# hbmk2 -n -w -es2 -trace -info t07.prg hbmk: Autodetected architecture: linux hbmk: Autodetected compiler: gcc hbmk: Using Harbour: /usr/bin /usr/include/harbour /usr/lib/harbour /usr/lib/harbour hbmk: Harbour compiler command (internal): /usr/bin/harbour -n2 t07.prg -i/usr/include/harbour -n -w -es2 Harbour 1.1.0dev (Rev. 10795) Copyright (c) 1999-2009, http://www.harbour-project.org/ Compiling 't07.prg'... Lines 25, Functions/Procedures 3 Generating C source output to 't07.c'... Done. hbmk: C compiler command: gcc t07.c /tmp/hbmk_47no6d.c -O3 -ot07 -I/usr/include/harbour -L/usr/lib/harbour -L/usr/lib/harbour -Wl,--start-group -llibharbour -lhbcplr -lhbdebug -Wl,--end-group /usr/lib/gcc/i586-suse-linux/4.3/../../../../i586-suse-linux/bin/ld: cannot find -llibharbour collect2: ld returned 1 exit status hbmk: Error: Running C compiler. 256: gcc t07.c /tmp/hbmk_47no6d.c -O3 -ot07 -I/usr/include/harbour -L/usr/lib/harbour -L/usr/lib/harbour -Wl,--start-group -llibharbour -lhbcplr -lhbdebug -Wl,--end-group _______________________________________________ Harbour mailing list [email protected] http://lists.harbour-project.org/mailman/listinfo/harbour
