Programación General > C/C++

 Mecla código C y C++, y otras dudillas.

(1/4) > >>

memmaker650:
Buenas
Quiero  combinar C y C++ y ahora tengo dudas tanto en la creación como en la compilación.
Es decir en mi código defino en otro fichero un método o procedimiento en C al que invocaré desde otro programa que está escrito en C++. No hay posibilidad de cambiar el código de C a C++, es obligatorio que esté en C++. ¿¿Como lo compilo ?? ¿¿Primero el método usando gcc o lo compilo todo usando g++ ??' Tengo que seguir algún orden en especial ?? Es que todavía no me aclaro con lo de trabajar con varios ficheros. La llamada al método la hago normalmente o necesito hacer especial. ¿¿ Algo que deba tener en cuenta ??

Bueno, yo compilo usando makefiles. Tengo la duda de si esto se puede hacer. Una vez realizado pongamos un programa en C++, todo perfecto. Imaginemos que se requiere que funcione para diferentes architecturas. Por ejemplo para x86, x86_64 o PPC por poner un ejemplo. Podemos seleccionar en el makefile la arquitectura para la que queremos nuestro programa, y si es posible podríamos hacer compilaciones para las 3 tecnologías y que cada programa se guardará en una carpeta. Y hacer esto para distintos sistemas operativos, WIndows Xp, Linux y MAC OS X ????

Un saludo. Y gracias de antemano.

m0skit0:
El código de C es totalmente válido en C++ (por algo se llama C++, es decir, una extensión de C), así que con compliarlo todo como si fuera C++ no debería haber ningún problema.

En cuanto a lo de cross-compiling, no tienes que tener tampoco ningún problema. Eso sí, la compilación para cada una de las plataformas debes hacerla por separado, no importa que estén todos en el mismo Makefile o en distintos Makefile (aunque te aconsejo lo segundo así lo tienes más ordenado).

r0d:
Hola,

hay algunas cositas que saber para utilizar codico C en un proyecto C++. Es posible que ya sabes, pero lo recuerdo por si a caso:
    * El main() tiene que ser compilado con el compilador c++
    * Es el compilador c++ que debe encarcgarse del "link" (no se como se dice en castellano, es la ultima fase de la compilacion)
    * Es mucho preferible que el compilador C y el compilador C++ sean del mismo "constructor" (gcc, borland, microsoft...)
    * Para usar codigo c en un fichero c++, hay que usar la directiva extern "C" (mejor ponerlo directamente en el .h escrito en C):

--- Código: C++ ---#ifdef __cplusplusextern "C" {#endif // mi codigo C #ifdef __cplusplus}#endif 
Espero que ayude

memmaker650:

--- Cita de: "m0skit0" ---El código de C es totalmente válido en C++ (por algo se llama C++, es decir, una extensión de C), así que con compliarlo todo como si fuera C++ no debería haber ningún problema.

En cuanto a lo de cross-compiling, no tienes que tener tampoco ningún problema. Eso sí, la compilación para cada una de las plataformas debes hacerla por separado, no importa que estén todos en el mismo Makefile o en distintos Makefile (aunque te aconsejo lo segundo así lo tienes más ordenado).
--- Fin de la cita ---

Gracias. He estado buscando info sobre lo del cross-compiling, pero no he encontrado ningun ejemplo ni nada parecido. Si pudieras poner algún ejemplo de las directivas o enlace con documentación te lo agradecería mucho.

nmaxcom:
Me he tomado la libertad de corregir alguna cosilla, espero que no te importe y te pueda servir ^_^  Aunque a lo mejor me he equivocado yo también xD


--- Cita de: "r0d" ---hay algunas cositas que debes saber para utilizar codico C en un proyecto C++. Es posible que ya sabeslo sepas, pero lo recuerdo por si a caso:
    * El main() tiene que ser compilado con el compilador c++
    * Es el compilador c++ que debe encarcgarse del "link" (no se como se dice en castellano, es la ultima fase de la compilacion) Creo que no se traduce el linking
    * Es mucho preferible que el compilador C y el compilador C++ sean del mismo "constructor"fabricante/origen/ de la misma empresa (gcc, borland, microsoft...)

--- Fin de la cita ---

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa