Re: aide pour compilation...
MARIANO Georges wrote:
>
> Salut,
>
> (pour faire bref,
> je cherche a compiler du code *généré* par une application "base"
> l'application étant fourni sous forme de binaires, de sources C
> auxiliaires [pour la génération] et de librairies ad hoc
> L'application base est livrée en deux morceaux
> (un common et un specific architecture iX86)
> )
>
> j'ai une erreur de compilation :
> - avec deux softs distincts
> - erreur identique (voir ci-dessous)
> - pas d'erreur pour la version SunOs de l'application "base"
> - pas d'erreur sur une red hat (pas la plus récente)
>
> voici le message d'erreur
> src/B_main.c:24: initializer element is not constant
> src/B_main.c:24: (near initialization for `sxstdout')
> src/B_main.c:24: initializer element is not constant
> src/B_main.c:24: (near initialization for `sxstderr')
>
> le bout de source ... (les commentaires sont d'origine)
> ----------------------------------------------------------
> #include "f2unix.h"
>
> /* On lit a priori sur stdin, et cetera */
>
> #ifdef unix
> FILE *sxstdout = {stdout}, *sxstderr = {stderr};
> #else
> FILE *sxstdout = {NULL}, *sxstderr = {NULL};
> #endif
>
> FILE *sxtty;
> BOOLEAN sxverbosep = {TRUE};
> ----------------------------------------------------------
> A noter : il y a plus loin... (quelques lignes...)
> ----------------------------------------------------------
> #ifndef unix
> if (sxstdout == NULL) {
> sxstdout = stdout;
> }
> if (sxstderr == NULL) {
> sxstderr = stderr;
> }
> #endif
> ----------------------------------------------------------
>
> je suis en debian ;-)
> ii gcc 2.95.2-1 The GNU C compiler.
> ii g++ 2.95.2-1 The GNU C++ compiler.
>
> je connais (quasi) rien en C
> si ça passe sur redhat, c'est qu'il doit y avoir un rapport avec
> l'environnement C de Debian non ???
>
> merci pour tout indice...
Je pense que cela vient du compilateur, le message d'erreur en tous
cas est un message d'erreur du compilateur.
Peut-etre gcc a-t-il accepte des instructions qu'il n'accepte plus
maintenant.
Le message d'erreur est clair, une variable est initialisee avec
un elemenbt non constant, {stdout} en l'occurence.
pour resoudre ton probleme (si il n'y a pas trop de code genere)
la solution est de remplacer la ligne 24 par :
FILE *sxstdout, *sxstderr ;
et d'ajouter ces lignes dans ta fonction main juste apres les
declarations
de variable (qui sont toutes regroupees au debut de la fonction en C)
sxstdout = {stdout} ;
sxstderr = {stderr} ;
Ca peut marcher ... avec de la chance,
--
Vera Mickael Stagiaire
Reply to: