Migrar c贸digo de GNU/G++ a Builder
Hola,
me gustar铆a saber si es posible utilizar librerias hechas para el compilador GNU/G++ de Linux/Unix en el entorno de programaci贸n Builder C++, ya que las diferencias son muy significativas.
Gracias y un saludo
me gustar铆a saber si es posible utilizar librerias hechas para el compilador GNU/G++ de Linux/Unix en el entorno de programaci贸n Builder C++, ya que las diferencias son muy significativas.
Gracias y un saludo
Las librerias como binarios son totalmente inconpatibles, Borland usa el formato LIB propio de los sistemas Win/DOS (para el que es nativo) mientras que GCC usa un formato con extencion .A muy popular y estandar en el mundo UNIX (pero que poco ompiladores DOS/Win soportan) pero si posees el codigo fuente ahi es otro tema...
En principio si el codigo de GNU usa solo exteciones ANSI C++ (C99 o C86) deveria compilar correctamente en el compilador de Borland pero GNU a incluido extenciones (muy bien documentadas) que ya se conocen como extenciones GNU haciendolo bastante duro de portar si son cosas de muy bajo nivel...
Por ejemplo, si el codigo a portar usa ensamblador inline de GCC es imposible portarlo sin reemplasar todo el codigo en cuestion.
Otra extencion propia de GNU es la pocbilidad de hacer cosas como estas:
void funcion (...) {
void func_privada (...) { /* codigo */}
func_privada (/*parametros*/);
}
En este caso si que deveras trabajar para portarlo porque es el unico compilador C++ que incluye estas extenciones (al menos que yo conosca)
Pero salvando etas diferencias, la malloria es salbable usando compilacion condicional (#ifdef, #elif, #ifndef, etc)
Si posees el codigo fuente, intentalo, nuna est de mas, pero eso si, no esperes poder portar de Builder a GCC pues Borland ha incluido extencione que lo de GNU no estan dispuestos a aceptar en el lenguaje C++ de ninguna manera y bjo nincun precio (lease sentencias __closure, secciones property y demas)
驴Sera por eso que los chicos de Qt usan un precompilador llamado moc?????
En principio si el codigo de GNU usa solo exteciones ANSI C++ (C99 o C86) deveria compilar correctamente en el compilador de Borland pero GNU a incluido extenciones (muy bien documentadas) que ya se conocen como extenciones GNU haciendolo bastante duro de portar si son cosas de muy bajo nivel...
Por ejemplo, si el codigo a portar usa ensamblador inline de GCC es imposible portarlo sin reemplasar todo el codigo en cuestion.
Otra extencion propia de GNU es la pocbilidad de hacer cosas como estas:
void funcion (...) {
void func_privada (...) { /* codigo */}
func_privada (/*parametros*/);
}
En este caso si que deveras trabajar para portarlo porque es el unico compilador C++ que incluye estas extenciones (al menos que yo conosca)
Pero salvando etas diferencias, la malloria es salbable usando compilacion condicional (#ifdef, #elif, #ifndef, etc)
Si posees el codigo fuente, intentalo, nuna est de mas, pero eso si, no esperes poder portar de Builder a GCC pues Borland ha incluido extencione que lo de GNU no estan dispuestos a aceptar en el lenguaje C++ de ninguna manera y bjo nincun precio (lease sentencias __closure, secciones property y demas)
驴Sera por eso que los chicos de Qt usan un precompilador llamado moc?????
