es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

GCC 2.95.3: error de compilación con la barra invertida y terminadores de línea CRLF.

Tengo una máquina virtual de Ubuntu 17.04. En este sistema operativo, que viene con GCC 6.x preinstalado, instalé GCC 4.9 desde el repositorio oficial y luego compilé lo siguiente:

  • GCC 4.7.0 desde GCC 4.9
  • GCC 3.0.4 desde GCC 4.7.0
  • GCC 2.95.3 desde GCC 3.0.4

Ahora, cuando compilo un código C antiguo, recibo este error en una macro de varias líneas:

stray ”\” in program

Escribí un script de Python para cambiar automáticamente los terminadores de línea de Windows (CRLF) a los de Linux. De esta manera, el código se compila correctamente.

¿Existe alguna forma de que GCC 2.95.3 entienda correctamente el código sin cambios? Según tengo entendido, GCC debe entender bien la diferencia.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no hay una forma garantizada para que GCC 2.95.3 comprenda correctamente el código sin cambios. El problema con las “\” sueltas en el programa probablemente es causado por el cambio en el comportamiento predeterminado de las barras invertidas entre las diferentes versiones de GCC. Específicamente, las versiones más antiguas de GCC pueden tratar las barras invertidas como caracteres de escape de una manera que las versiones más nuevas no lo hacen.

    Por lo tanto, aunque cambiar los terminadores de línea puede resolver el problema, no es una solución confiable ni óptima. Sería mejor modificar el propio código, utilizando caracteres de escape u otros medios, para asegurarse de que sea compatible con todas las versiones de GCC que se estén utilizando.

Comments are closed.