PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : winex kann nicht kompilieren möglw Konflikt



tsuribito
06.09.02, 15:11
Hallo. Ich habe von der Suse 7.3 Eval auf die Professional gewechselt und wollte wieder wine kompilieren. Doch make depend && make wird mit Fehlern beendet. Nachdem es beim letzen Mal geklappt hatte, vermute ich, dass ein vorhandes Programm stört.
Hier mal die letzten Zeilen..
gcc -c -I. -I. -I../../include -I../../include -Iffmpeg -Iffmpeg/libav -Iffmpeg/libavcodec -g -O2 -Wall -mpreferred-stack-boundary=2 -fPIC -D__WINE__ -DHAVE_AV_CONFIG_H -DPIC -D_REENTRANT -I/usr/X11R6/include -o ffmpeg_audio.o ffmpeg_audio.c
In file included from ffmpeg/libavcodec/avcodec.h:4,
from ffmpeg_audio.c:47:
ffmpeg/libavcodec/common.h:152: conflicting types for `wine_dbg_log'
../../include/wine/debug.h:89: previous declaration of `wine_dbg_log'
make[2]: *** [ffmpeg_audio.o] Error 1
make[2]: Leaving directory `/root/wine/dlls/quartz'
make[1]: *** [quartz/libquartz.so] Error 2
make[1]: Leaving directory `/root/wine/dlls'
make: *** [dlls] Error 2

Slowhand
06.09.02, 18:12
Genau das Problem hatte ich heute auch. Ist aber einfach zu lösen: gehe in das Verzeichnis wine/dlls/quartz/ffmpeg/libavcodec/ und öffne die Datei "common.h" mit einem Texteditor. Die Zeile 152 kommentierst du mit "//" aus, also sollte es etwa so aussehen:


...
#ifndef __WINE_DEBUGTOOLS_H
extern char __wine_dbch_ffmpeg[];
//extern int wine_dbg_log( int cls, const char *ch, const char *func, const char
*format, ... );
#define dprintf(fmt,args...) \
...


Jetzt nochmal "make" und es sollte fertig durchlaufen. Ist wohl ein Bug im aktuellen CVS, wo ein Entwickler beim Einchecken geschlafen hat...

MfG
SH

tsuribito
06.09.02, 18:14
Hey Klasse vielen Dank :)

MagDragon
09.09.02, 11:13
Argh, das Problem hatte ich auch gerade ^^

Ok, ich weiß wie ich es vermeide (DANKE!) aber woran liegt das eigentlich??

Ich schätze mal einfach das es was mit FFMpeg zu tun hat (den ich glaube mit Xine installiert habe...), aber warum genau meckert der?

Slowhand
10.09.02, 17:31
Der meckert, weil in der angegebenen .c-Datei zwei Header eingebunden werden, in denen die Funktion wine_dbg_log() mit unterschiedlichen Prototypen deklariert wurde.

in common.h:
int wine_dbg_log( int cls, const char *ch, const char *func, const char *format, ... )

in debug.h:
int wine_dbg_log( enum __WINE_DEBUG_CLASS cls, const char *ch,
const char *func, const char *format, ... ) __WINE_PRINTF_ATTR(4,5)

Da hat wohl ein Entwickler gepennt beim Einchecken einer neuen Dateiversion und vergessen, den Prototypen entsprechend anzupassen.

MfG
Slowhand