VC++: cl.exe error C2275: Mais pourquoi ???? - C - Programmation
Marsh Posté le 26-07-2010 à 14:23:51
C'est normal de chercher a inclure Xlib.h en compilant avec VC++ et en ayant definit WIN32? (Je sais que c'est possible de compiler des clients X sous windows, mais vouloir le faire est suffisemment rare pour que je pose la question).
Marsh Posté le 26-07-2010 à 16:20:07
Il s'agit pas de xlib à proprement parler. Je cherche à compiler une extension pour le language Tcl/Tk. L'API Tk est essentiellement basée sur xlib, et on émule xlib pour Windows, en utilisant les fonctions des librairies user32 et gdi32. le X11/xlib.h est l'endroit o* sont stockés les équivalences Windows de xlib.
Mais, ça ne résoud pas mon problème !! ;-)
Marsh Posté le 26-07-2010 à 13:45:11
Bonjour,
J'essaie de compiler avec VC++ 2010 Exproess en ligne de commande, un simple fichier C pour en faire une DLL. Ce programme compile bien sous Linux, et sous Windows avec MinGW (pour d'autres raisons, je voudrais le compiler avec VC++). J'utilise VC++ pour la première fois.
La premiere etape est la compilation :
cl.exe /c /O2 /DUSE_TCL_STUBS=1 /DUSE_TK_STUBS=1 /DWIN32=1 /DTCL_THREADS=1 /IC:\Tcl\include\tcl8.6 /I. square.c
J'ai plein d'erreurs qui arrivent ! Je vous épargne les 123541231 lignes et ne vous donne que les premières :
square.c
square.c(548) : error C2275: 'XGCValues' : illegal use of this type as an expression
C:\Tcl\include\tcl8.6\X11/Xlib.h(185) : see declaration of 'XGCValues'
square.c(548) : error C2065: 'newgc' : undeclared identifier
square.c(550) : error C2275: 'XGCValues' : illegal use of this type as an expression
C:\Tcl\include\tcl8.6\X11/Xlib.h(185) : see declaration of 'XGCValues'
square.c(550) : error C2146: syntax error : missing ';' before identifier 'gcValues'
square.c(550) : error C2065: 'gcValues' : undeclared identifier
@
Je ne comprends pas ces erreurs. Le compilateur semble faire comme s'il n'avait pas lu les include, mais apparemment il l'a fait , puisqu'il me donne les lignes de declaration. La premiere erreur, xlib.h:192, dit
typedef XGCValues *GC;
Ai-je oublié une option de compilation ? (pour lui dire que je suis en ANSI C ?)
Merci pour votre aide !!
Luc