[LUG.ro] GCC del redhat 9.x una obra maestra del terror

Ricardo Barberis lugro@lugro.org.ar
Wed, 25 Feb 2004 10:20:13 -0300


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El Miércoles 25 Febrero 2004 09:45, Horacio Castellini escribió:
> Hola:
> 	Tengo un problema en una máquina en la cuál soy usuario y no
> adminstrador... es una máquina con smp. Que me permite correr programas
> de calculos. Tiene un mecanismo de update automático que viene con la
> versión non-free del RedHat 9.??? El compilador gcc de RH tiene de ahora
> en más sus soluciones propias incompatibles con la licencia GPL.

Horacio, desde ya que no soy un experto, pero lo que si se es que el 
problema es porque a partir de la version 3 el gcc es mas estricto en 
cuanto al codigo y con cada aumento de version menor se va haciendo mas 
estricto, por eso con la version "vieja" no te daba problemas.
Mas abajo te tiro unos ejemplos.

> Ahora bien el tipo de compilador c++ que tiene es:
>
> hcaste@grela:~/tmp$ c++ -c -v hola.cc
> gcc versión 3.2.2 20030222 (Red Hat Linux 3.2.2-5)

> El compilador donde no tengo problema es:
>
> hcaste@clara:~/tmp$ c++ -c -v hola.cc
> gcc version 2.95.4 20011002 (Debian prerelease)

La version es lo importante.

> Cuando un compilo un código fuente con el compilador RH me manda estos
> problemas que no me los manda en Debian ni en un copilador ANSI C++ de
> BSD, el codigo compila en otros no en el RH 9.XXX non-free. Los errores
> son:
>
> g++ -DKMAX=1000000 -DTAU=120 -I/home/hcaste/include/ -O2  -c rosler2.cc
> -o rosler2.o
> En el fichero incluído de /home/hcaste/include/falgebra.h:8,
>                  de /home/hcaste/include/futil.h:10,
>                  de rosler2.cc:4:
> En el fichero incluído de /home/hcaste/include/falgebra.h:8,
>                  de /home/hcaste/include/futil.h:10,
>                  de rosler2.cc:4:
> /home/hcaste/include/ferror.h: En function `void error(char*, char*)':
> /home/hcaste/include/ferror.h:42: `cerr' sin declarar (primero use esta
>    función)
> /home/hcaste/include/ferror.h:42: (Cada identificador sin declarar es
> reportado
>    sólo una vez para cada función en el que aparece.)
> En el fichero incluído de /home/hcaste/include/futil.h:10,
>                  de rosler2.cc:4:
> /home/hcaste/include/falgebra.h: At global scope:
> /home/hcaste/include/falgebra.h:72: ISO C++ prohibe la declaración de
> `ostream'
>    sin tipo
> /home/hcaste/include/falgebra.h:72: `ostream' no es ni función ni función
>    miembro; no puede ser declarado friend

OK, no se en el caso de cerr, pero ostream lo he visto como std::ostream 
para poder usarlo con gcc 3.x

> el archivo de encabezados futil.h hace una llamada a iostream.h asi que
> no puede ser que cerr no esté prototipada, si figura el prototipo en el
> iostream.h, por otro lado la el metodo miembro ostream está en el ambito
> de "public" como que prohibe la declaración ostream???. Mas detalles
> sobre el "spech search"... son estos...
>
> hcaste@grela:~/tmp$ c++ -c -v hola.cc
> Leyendo especificaciones de
[...]
> Fin de la lista de búsqueda.
>
> Alguna solución para colocar en los Makefile? no puedo tocar el
> sistema...

Solucion no creo, pero espero que al menos te oriente :-)

Saludos.
- -- 
Ricardo Barberis
Usuario Linux Nº 250625:           http://counter.li.org
Usuario LFS Nº 5121:               http://www.linuxfromscratch.org
LFS en castellano:                 http://www.lfs-es.org
Senior SysAdmin - Dattatec.com - Hosting Solutions
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQFAPKEOnabpmElFaJkRAkcBAJ93aImn5OOdA7KGX35aEsp07ukuuACePdxv
cjY8B+w7Hl6nyx6Os1OThu4=
=If+H
-----END PGP SIGNATURE-----