Hallo,
ich wollte mir gerade NewsFlex 1.1.4 compilieren. xmkmf
laeuft ohne Fehlermeldung durch, make bricht dagegen mit
der Fehlermeldung:
helpers.c:269: macro `strstr' used without args
make: *** [helpers.o] Error 1
ab. Falls es wichtig ist, in der helpers.c steht in Zeile 269:
extern char *strstr();
xforms0.86 ist installiert, ebenfalls das xdevel-Paket.
Wer hat eine Idee, wo das Problem liegen koennte?
Danke,
Heinz.
--
E-Mail: Heinz W. Pahlke
* Heinz W. Pahlke (h.pahlke@berlin.de) [20000307 16:16]:
extern char *strstr();
Und genau die Zeile musst Du entweder auskommentieren oder ganz löschen.
Besser noch, mach daraus
#ifndef __GLIBC__
extern char *strstr();
#endif
Wenn man es ihr nicht verbietet, bekommst Du von der glibc inline Versionen
der Stringfunktionen in Form von Makros. Ein Makro kann nun nicht zwischen
Deklaration und Aufruf unterscheiden, ersetzt also auch diese Deklaration,
was falschen Code und die Fehlermeldung des Kompilers zur Folge hat.
Philipp
--
Philipp Thomas
On 07-Mar-2000 Philipp Thomas wrote:
* Heinz W. Pahlke (h.pahlke@berlin.de) [20000307 16:16]:
extern char *strstr();
Und genau die Zeile musst Du entweder auskommentieren oder ganz löschen. Besser noch, mach daraus
#ifndef __GLIBC__ extern char *strstr(); #endif
Damit gibt es dann prompt zahllose warnings nach dem Muster:
custom_colors.o: warning: multiple common of `debug_flag'
posting_macros.o: warning: previous common is here
custom_colors.o: warning: multiple common of `home_dir'
posting_macros.o: warning: previous common is here
custom_colors.o: warning: multiple common of `visible_browser'
posting_macros.o: warning: previous common is here
custom_colors.o: warning: multiple common of `file_menu_selection'
usw., bis make dann mit der Fehlermeldung
etup.o: In function `save_general_settings':
setup.o(.text+0xb0a): undefined reference to `crypt'
filters.o: In function `show_filter_form':
filters.o(.text+0x7bf): undefined reference to `crypt'
collect2: ld returned 1 exit status
make: *** [NewsFleX] Error 1
erneut abbricht.
Ich bilde mir zwar ein, inzwischen doch ein klein wenig von Linux und
Comptern zu verstehen, aber hier bin ich doch so ratlos, dass ich
nicht einmal eine Idee habe, wo ich suchen koennte.
Gruss,
Heinz.
--
E-Mail: Heinz W. Pahlke
"Heinz W. Pahlke" wrote: [...]
usw., bis make dann mit der Fehlermeldung
setup.o: In function `save_general_settings': setup.o(.text+0xb0a): undefined reference to `crypt' filters.o: In function `show_filter_form': filters.o(.text+0x7bf): undefined reference to `crypt' collect2: ld returned 1 exit status make: *** [NewsFleX] Error 1
Diess Teil wurde offetsichtlich noch mit libc-5 entwickelt. Bei der Libc-5 war crypt() ( siehe "man crypt") in der libc und nicht in einer eigenen libcrypt . Um da Teil mit glibc gelinkt zu bekommen musst du somit noch ein -lcrypt zu den Compiler/Linkerflags dazufügen . -- Markus Kossmann markus.kossmann@inka.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On 07-Mar-2000 Markus Kossmann wrote:
Diess Teil wurde offetsichtlich noch mit libc-5 entwickelt. Bei der
Das koennte es tatsaechlich sein. Obowohl, im Makefile steht etwas von "libc (6.1.1)".
Libc-5 war crypt() ( siehe "man crypt") in der libc und nicht in einer eigenen libcrypt . Um da Teil mit glibc gelinkt zu bekommen musst du somit noch ein -lcrypt zu den Compiler/Linkerflags dazufügen .
Bloss wie macht man das? Mit configure kenne ich mich inzwischen ein
wenig aus, aber xmkmf ist mir noch ein Buch mit sieben Siegeln.
Gruss,
Heinz.
--
E-Mail: Heinz W. Pahlke
"Heinz W. Pahlke" wrote:
On 07-Mar-2000 Markus Kossmann wrote:
Diess Teil wurde offetsichtlich noch mit libc-5 entwickelt. Bei der
Das koennte es tatsaechlich sein. Obowohl, im Makefile steht etwas von "libc (6.1.1)".
Das wird wahrscheinlich autotisch durch xmmf erzeugt, weil das so ib den XFree Konfigurationsdateien steht. Der Autor hat wohl nie glibc benutzt.
Libc-5 war crypt() ( siehe "man crypt") in der libc und nicht in einer eigenen libcrypt . Um da Teil mit glibc gelinkt zu bekommen musst du somit noch ein -lcrypt zu den Compiler/Linkerflags dazufügen .
Bloss wie macht man das? Mit configure kenne ich mich inzwischen ein wenig aus, aber xmkmf ist mir noch ein Buch mit sieben Siegeln.
Im Imakefile -lcyrpt in der "LOCAL_LIBRARIES =" Zeile anhängen und danach nochmal xmkmf . -- Markus Kossmann markus.kossmann@inka.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On 08-Mar-2000 Markus Kossmann wrote:
Im Imakefile -lcyrpt in der "LOCAL_LIBRARIES =" Zeile anhängen und danach nochmal xmkmf .
Vielen Dank, jetzt laeuft's, auch wenn make nach wie vor unzaehlige
warnings ausspuckt. Aber make endet wenigstens nicht mehr mit einem
error.
Gruss,
Heinz.
Gerade wollte ich die Mail abschicken, da merke ich, dass make
zwar durchlaeuft und NewsFlex sich starten laesst, aber die
vorhandenen News nicht mehr anzeigen kann. Habe mir deshalb gerade
mal die statisch gelinkte Version gezogen - und mit der geht es.
Raetselhaft.
--
E-Mail: Heinz W. Pahlke
* Heinz W. Pahlke (h.pahlke@berlin.de) [20000307 17:51]:
Damit gibt es dann prompt zahllose warnings nach dem Muster:
custom_colors.o: warning: multiple common of `debug_flag' posting_macros.o: warning: previous common is here custom_colors.o: warning: multiple common of `home_dir' posting_macros.o: warning: previous common is here custom_colors.o: warning: multiple common of `visible_browser' posting_macros.o: warning: previous common is here custom_colors.o: warning: multiple common of `file_menu_selection'
Ich kann nur sagen, daß es schlampig programmierter code zu sein scheint. Hier enthalten zwei Objekte das gleiche Symbol und das bringt den Linker berechtigter Weise durcheinander.
setup.o: In function `save_general_settings': setup.o(.text+0xb0a): undefined reference to `crypt'
Hmm, die Funktion crypt ist in der libc enthalten. Hier geht so einiges ziemlich schief :(
Ich bilde mir zwar ein, inzwischen doch ein klein wenig von Linux und Comptern zu verstehen, aber hier bin ich doch so ratlos, dass ich nicht einmal eine Idee habe, wo ich suchen koennte.
Bei solchen Problemen braucht es dann doch schon ein gerütteltes Maß
Erfahrung im Programmieren. Schick mir doch mal die URL für das Paket,
dann kann ich mir das mal ansehen, wenn ich zu Hause bin.
Philipp
--
Philipp Thomas
* Heinz W. Pahlke (h.pahlke@berlin.de) [20000307 16:16]:
ich wollte mir gerade NewsFlex 1.1.4 compilieren. xmkmf laeuft ohne Fehlermeldung durch, make bricht dagegen mit der Fehlermeldung:
Hier schon einmal vorab ein besseres und funktionierendes Imakefile. Was
diesem noch fehlt ist ein Eintrag, damit man einfach zusätzliche
Compileroptionen angeben kann. Ansonsten tut das schon viel besser als das
alte. Am Code sitze ich noch dran, kann aber vorab schon sagen, daß ich
persönlich dem Programm bisher nicht über den Weg traue, gegeben so einige
Merkwürdigkeiten im Code.
Die recht eigenwillige Formatierung ist dabei noch das kleinste Problem und
lässt sich Dank indent auf einfache Weise ändern. Warum aber jemand z.B.
eine eigene Version von strdup() schreibt und verwendet ist mir schon
weniger verständlich.
Das Beste wäre es IMNSHO wahrscheinlich, imake ganz über Bord zu werfen und
automake und autoconf zu verwenden. Dann ließe sich der ganze
Kompatibilitätskram einfach und elegant erschlagen.
Philipp
--
Philipp Thomas
participants (3)
-
h.pahlke@berlin.de
-
Markus.Kossmann@inka.de
-
pthomas@suse.de