PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : winex kompilierung - caps.o + libd3dgl.so fehler



xarior
31.12.02, 16:29
hallo zusammen (mein erster beitrag hier ;))
ich probiere jetzt seid geraumer zeit winex zu kompilieren und hab auch schon einige tutorials durchgelesen unter anderem auch die von holarse.net
zuerst hatte ich nur probleme mit der caps.o (1 fehler)
ich bin mir nich sicher aber ich glaube nachdem ich das mitgelieferte "wineinstall" erfolglos getestet und wine wieder deinstalliert hab krieg ich folgendes


[ ... ]
In file included from d3dgl_private.h:5,
from caps.c:18:
../../include/wine_gl.h:74: warning: redefinition of `PFNGLACTIVETEXTUREARBPROC'
/usr/include/GL/gl.h:2078: warning: `PFNGLACTIVETEXTUREARBPROC' previously declared here
../../include/wine_gl.h:75: warning: redefinition of `PFNGLCLIENTACTIVETEXTUREARBPROC'
/usr/include/GL/gl.h:2079: warning: `PFNGLCLIENTACTIVETEXTUREARBPROC' previously declared here
../../include/wine_gl.h:76: warning: redefinition of `PFNGLMULTITEXCOORD2FARBPROC'
/usr/include/GL/gl.h:2090: warning: `PFNGLMULTITEXCOORD2FARBPROC' previously declared here
In file included from caps.c:18:
d3dgl_private.h:108: parse error before `PFNGLWEIGHTPOINTERARBPROC'
d3dgl_private.h:108: warning: no semicolon at end of struct or union
d3dgl_private.h:108: warning: type defaults to `int' in declaration of `glVertexBlendARB'
d3dgl_private.h:108: warning: data definition has no type or storage class
d3dgl_private.h:110: parse error before `}'
d3dgl_private.h:110: warning: type defaults to `int' in declaration of `DD_GL_data'
d3dgl_private.h:110: warning: data definition has no type or storage class
caps.c:22: parse error before `*'
caps.c:23: parse error before `*'
caps.c:24: parse error before `*'
caps.c:25: parse error before `*'
caps.c: In function `D3DGL_Init':
caps.c:29: `gld' undeclared (first use in this function)
caps.c:29: (Each undeclared identifier is reported only once
caps.c:29: for each function it appears in.)
caps.c:29: warning: statement with no effect
caps.c:31: parse error before `void'
caps.c:42: parse error before `)'
caps.c:50: `lpData' undeclared (first use in this function)
caps.c:51: `lpExt' undeclared (first use in this function)
caps.c:52: `lpCB' undeclared (first use in this function)
caps.c:55: `gl_GetProcAddress' undeclared (first use in this function)
caps.c:60: `gl_GetProcAddress' used prior to declaration
caps.c:60: warning: implicit declaration of function `gl_GetProcAddress'
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: `PFNGLWEIGHTPOINTERARBPROC' undeclared (first use in this function)
caps.c:60: parse error before `extproc'
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: `PFNGLVERTEXBLENDARBPROC' undeclared (first use in this function)
caps.c:60: parse error before `extproc'
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:60: warning: assignment makes pointer from integer without a cast
caps.c:81: `dwhContext' undeclared (first use in this function)
caps.c:127: `tmpi' undeclared (first use in this function)
caps.c:199: `GL_MAX_VERTEX_UNITS_ARB' undeclared (first use in this function)
caps.c: At top level:
caps.c:285: parse error before `*'
caps.c: In function `fill_prim_caps':
caps.c:287: `pc' undeclared (first use in this function)
caps.c:291: `gld' undeclared (first use in this function)
caps.c: At top level:
caps.c:343: parse error before `*'
caps.c: In function `check_exts':
caps.c:351: `gld' undeclared (first use in this function)
caps.c: At top level:
caps.c:356: parse error before `*'
caps.c: In function `add_texture_fmts':
caps.c:363: `lpData' undeclared (first use in this function)
caps.c:446: `gld' undeclared (first use in this function)
caps.c: At top level:
caps.c:475: parse error before `*'
caps.c: In function `add_zbuffer_fmts':
caps.c:480: `lpDD' undeclared (first use in this function)
caps.c: In function `D3DGL_GetCaps':
caps.c:505: `gld' undeclared (first use in this function)
caps.c:505: parse error before `)'
make[2]: *** [caps.o] Fehler 1
make[2]: Verlassen des Verzeichnisses Verzeichnis »/home/xarior/src/wine/dlls/d3dgl«
make[1]: *** [d3dgl/libd3dgl.so] Fehler 2
make[1]: Verlassen des Verzeichnisses Verzeichnis »/home/xarior/src/wine/dlls«
make: *** [dlls] Fehler 2

ich verwende derzeit suse 8.0 mit den aktuellen patches und XFree 4.02 hab eine GF3 Ti200 und hatte früher auch schon die linuxversionen von quake3 und UT laufen habe allerdings noch nicht so viel ahnung von linux
hab auch schon probiert was Headcrash23 in diesem thread http://www.linuxforen.de/forums/showthread.php?s=&threadid=52362&highlight=winex+AND+caps.o vorgeschlagen hat - keine besserung

BTW: bei debian komm ich gar nicht soweit weil make beim kompilieren des nvidia kernel moduls ein fehlendes linux/moduleversions.h meldet (kA woher das kommen sollte)

wäre sehr dankbar wenn mir da jemand helfen könnte :)

PS: frohes neues jahr :)

kippndreser
01.01.03, 13:48
guck mal hier:
http://www.linuxforen.de/forums/showthread.php?s=&threadid=59135
sieht so aus als wäre das gleiche Problem

xarior
02.01.03, 15:40
Index: wine/include/wine_gl.h
==================================================
=================
RCS file: /cvsroot/winex/wine/include/wine_gl.h,v
retrieving revision 1.11
diff -c -r1.11 wine_gl.h
*** wine/include/wine_gl.h 13 Dec 2002 22:13:36 -0000 1.11
--- wine/include/wine_gl.h 28 Dec 2002 21:49:17 -0000
***************
*** 27,32 ****
--- 27,33 ----
#undef WINAPI

#define XMD_H /* This is to prevent the Xmd.h inclusion bug to happen :-/ */
+ #define GL_GLEXT_PROTOTYPES
#include <GL/gl.h>
#include <GL/glu.h>
#define GLX_GLXEXT_PROTOTYPES
***************
*** 42,48 ****
GL_ARB_multitexture (Mesa gl.h defines GL_ARB_multitexture
itself, rather than leaving it up to glext.h - aak!) */

! #if defined(GL_ARB_multitexture)
#define WINE_DDRAW_need_multitexture_pfns
#endif

--- 43,49 ----
GL_ARB_multitexture (Mesa gl.h defines GL_ARB_multitexture
itself, rather than leaving it up to glext.h - aak!) */

! #if defined(GL_ARB_multitexture) && (GL_GLEXT_VERSION < 17)
#define WINE_DDRAW_need_multitexture_pfns
#endif


ok diff ist ein programm um dateien auf unterschiede zu prüfen so viel weiss ich schon mal ;)
aber welche beiden wine_gl.h's vergleichst du da und wie kommts das die beide im selben verzeichnis liegen können :confused:
und als letztes und wichtigstes wie hilft mir das winex richtig zu kompilieren? muss ich den code von oben irgendwie in meine wine_gl.h einfügen?
ich hab die man page von diff mal überflogen hatte dabei aber leider keine eingebungen

kippndreser
02.01.03, 18:59
ich hab die Datei vom Server/Internet mit meiner lokalen Datei verglichen. D.h. die liegen zwar sozusagen im gleichen Verzeichnis aber auf unterschiedlichen Rechnern.

so sieht es vielleicht gewohnter aus, das hab ich irgendwann mal "manuell" gemacht:


--- wine/include/wine_gl.h Sat Sep 28 18:59:34 2002
+++ wine_dri/include/wine_gl.h Sat Oct 5 18:58:33 2002
@@ -27,6 +27,7 @@
#undef WINAPI

#define XMD_H /* This is to prevent the Xmd.h inclusion bug to happen :-/ */
+#define GL_GLEXT_PROTOTYPES
#include <GL/gl.h>
#include <GL/glu.h>
#define GLX_GLXEXT_PROTOTYPES
@@ -42,7 +43,7 @@
GL_ARB_multitexture (Mesa gl.h defines GL_ARB_multitexture
itself, rather than leaving it up to glext.h - aak!) */

-#if defined(GL_ARB_multitexture)
+#if defined(GL_ARB_multitexture) && (GL_GLEXT_VERSION < 17)
#define WINE_DDRAW_need_multitexture_pfns
#endif


Änderung einpflegen:
du kannst das mit dem Programm "patch" machen oder auch manuell: alle Zeilen mit nem Minus vorne dran: löschen, alle mit Plus: einfügen. Die anderen Zeilen sind zur besseren Orientierung.
Die Zahlen bei den @@ sind Zeilennummern und Anzahl in der alten und neuen Datei: kann sein daß die nicht mehr 100% passen, macht aber (hier) nix.

dann dann
Andreas

Henni
02.01.03, 21:03
Ich hatte das selbe Problem und diese Lösung half mir nicht.. ich musste folgendes tun:

Erstmal wieder die "originalen" OpenGL Include Dateien der XFree86 Devel Packete holen und nach /usr/include/GL kopieren. (gl.h, glx.h und glxtokens.h - hatte die Dateien der NVidia Treiber dort).
Dadurch verschwinden die meisten probleme.

Es gab dann nur ein Problem mit einer doppelt definierten Funtion in include/wine_gl.h.. hab das einfach auskommentiert und dann funktionierte alles.

lg, Helmi

kippndreser
02.01.03, 21:43
Bei mir tauchte das Problem einmal nach einem Update von DRI aus CVS auf. Die haben da neuere Headerdateien eingepflegt, deshalb das mit der GLEXT_VERSION.
Headerdateien von einem neuen MESA und ggf. auch vom demnächst erscheinenden XFree86 4.3.0 dürften auch "Probleme" machen...
Seltsamerweise funktionierte der Patch auch einmal mit Headerdateien von nVidia, siehe WINEX-devel Mailingliste (Oktober)


P.S.: WINE aus CVS compiliert bei mir ohne irgendwelche Patches.

xarior
03.01.03, 00:28
der patch hat funktioniert das kompilieren klappt :)
danke schon mal dafür allerdings komme ich jetzt zum nächsten problem
um genau zu sein: "The supported OpenGL mode is not supported by your video card"
ok also zurück zum tutorial und dann festgestellt das meine libopengl32.so nicht existiert :(
nur eine libopengl32.def bei der es sich nicht um eine binäre sondern eine normale textdatei handelt
also nochmal die ausgabe von ./configure --enable-opengl angeschaut:
hinter allem was mit GL zu tun hat steht ...yes
hab dann gesehen das es ein verzeichnis namens /usr/local/lib/wine gibt und darin eine datei namens opengl32.dll.so zu der ldd eine sehr ähnliche ausgabe liefert wie im tutorial (http://home.mayn.de/comrad/index.php?content=half-life-HOWTO-0.4.1-german.html#AEN154) abgebildet
nach /usr/local/lib kopiert und umbenannt schafft sie aber leider auch keine abhilfe
nächster punkt im tutorial


-rw-r--r-- 1 root root 2178268 Mär 25 2002 libGL.a
-rwxr-xr-x 1 root root 750 Mär 25 2002 libGL.la
lrwxrwxrwx 1 root root 24 Feb 8 00:07 libGL.so -> GL/libGL.so.1.3.mesasoft
lrwxrwxrwx 1 root root 27 Dez 23 19:52 libGL.so.1 -> GL/libGL.so.1.0.3123.nv_glx
-rw-r--r-- 1 root root 4233832 Mär 25 2002 libGLU.a
-rwxr-xr-x 1 root root 816 Mär 25 2002 libGLU.la
lrwxrwxrwx 1 root root 13 Feb 7 23:50 libGLU.so -> libGLU.so.1.3
lrwxrwxrwx 1 root root 22 Feb 8 00:07 libGLU.so.1 -> libGLU.so.1.3.20000925
-rwxr-xr-x 1 root root 733286 Mär 25 2002 libGLU.so.1.3
-rwxr-xr-x 1 root root 566445 Sep 28 2000 libGLU.so.1.3.20000925
lrwxrwxrwx 1 root root 28 Dez 23 19:52 libGLcore.so.1 -> libGLcore.so.1.0.3123.nv_glx
-rwxr-xr-x 1 root root 3623820 Sep 1 09:10 libGLcore.so.1.0.3123.nv_glx

sieht schon etwas anders aus
jetzt meine frage macht es sinn auf der vermutung beruhend das opengl32.dll.so ein anderer name für libopengl32.so ist mesadateien zu löschen oder mit den links rumzuprobieren?
hat jemand eine bessere idee? :(

kippndreser
03.01.03, 15:32
hm. da weiß ich auch nix weiter. höchstens daß du vielleicht mal das mesa-soft paket deinstallieren könntest/solltest: Du willst ja die Treiber/libGL.so von nVidia benutzen.

xarior
04.01.03, 18:49
hab jetzt mal die nvidia-treiber neu installiert wine nochmal kompiliert und jetzt gibts sogar eine libopengl32.so in /usr/lib
GL läuft leider trotzdem nicht (HL bringt immer noch den selben fehler) :(
mesasoft zu deinstallieren hat nicht geholfen (davon abgesehen braucht mesa-devel und mesaglu dieses packet)
damit hätte ich wohl so ziemlich alles aus dem tutorial durchgekaut

ich weiss nicht ob das früher auch schon so war aber wenn ich jetzt mal
su
export HOME=/home/xarior
wine hl.exe
mache dann scheint sich der X-server aufzuhängen bzw. die auflösung wechselt und ich habe viele bunte farben auf dem bildschirm aber nix vernünftiges :confused:

hat noch irgendenjemand eine idee einen ansatz oder sonstirgendwas? hab nämlich absolut keine ahnung mehr was ich noch machen könnte :(

kippndreser
04.01.03, 23:57
hm.. ggf. das mesa-devel paket mit der rpm-option --nodeps installieren: da werden keine Abhängigkeiten beachtet, dann kannst das mesa-soft paket weglassen.
oder die libgl.so vom mesa-soft paket einfach löschen... ist zwar nicht die feine Art, aber wenns hilft...
oder das glx-devel paket von xfree verwenden: bei mir (suse 7.3) ist das das paket xf86_glx und xf86glx-devel..

Wart mal noch ein bißchen.. vielleicht meldet sich ja noch ein user der ne nvidia-karte hat (ich hab ne ATI)

Henni
05.01.03, 11:29
Hast du die nVidia Treiber per RPM packet installiert, oder selbst kompiliert? Ich würde dir zu 2. raten, da es RPM Packeten nicht erlaubt ist, Dateien zu überschreiben udg. Bei dir dürften noch Teile von MesaSoft im System sein und dadurch Probleme machen. (Hast du mal glxgears probiert ob es gut funktioniert?) Und beim selbst kompilieren, werden diese Dinge gelöscht.

lg, Helmi

The Unknown
09.01.03, 12:25
hmm .. gleiches problem hier, das diff hat nicht geholfen.. OpenGL hat er aber eigentlich gefunden beim configure.

kippndreser
09.01.03, 12:58
also das diff sollte eigentlich mit aktuellen Headerdateien gl.h glx.h glext.h glxext.h von XFree (z.B. 4.2.99-3), mesa (5) und natürlich DRI-CVS funktionieren. Ob mans für die neusten XFree headerdateien BRAUCHT, weiß ich nicht)
Bei älteren Headerdateien von nVidia/Mesa/XFree/DRI hat es wenigstens nicht gestört.
Ich kenne neue nVidia-Headerdateien nicht, das muß sich mal jemand anschauen der die hat.

The Unknown
09.01.03, 13:31
hmm ..
ich hatte eigentlich die aktuellsten mesa's installiert, deshalb wunderte es mich auch das es nicht ging - mit den nvidia-headern hatte ich es ebenso versucht. Ich hab nun einfach die eigentlichen älteren mesa-pakete von SuSE 8.1 installiert, und im moment scheint er durchzulaufen - ohne die nvidia-header zumindest.

xarior
11.01.03, 14:21
@Henni Danke das wars :)
das kernelmodul konnte ich zwar irgendwie nicht kompilieren aber ein "make install" der GLX-quellen hat schon gereicht :)
hab zwar bei hl noch ein paar probleme mit den texturen aber das hat hiermit wohl nichts mehr zu tun...
danke nochmal an alle

PS: sorry wegen der späten antwort hab momentan viel um die ohren

henrike
29.08.03, 09:15
Sag mir mal bitte, mit welchem Kommando man den Patch richtig installiert, bei mir will das nicht, und bevor ich fehler poste , will ich sicher gehen, dass ich überhaupt das richtige Kommando benutzt habe (sonst wärs ja kein Wunder, das ich Fehler kriege)