Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas Al Compilar En C++ Librerías De C

Iniciado por javiel, 02 de Noviembre de 2004, 11:46:41 PM

« anterior - próximo »

javiel

 Hola:

Estoy haciendo unas librerías en SDL para crear animaciones (intros) desde un archivo XML que espero en breve poder liberar. Ya están para Linux, pero estoy intentando compilarlas para windows y tengo un problema.

La cosa es que estoy utilizando SDL_Rotozoom, que son unas librerías escritas en C para hacer rotaciones y zoom a imágenes. El archivo viene con un archivo de test, y cuando lo compilo lo hace perfecto. El test lo hace bien. Pero el test está escrito en C y yo mis librerías las tengo en C++. Cuando cambio la extensión al test, he intento compilar el Visual C++ me dice esto:


j:\archivos de programa\microsoft visual studio\vc98\include\math.h(514) : error C2894: templates cannot be declared to have 'C' linkage


He estado buscando en internet, y he encontrado muchas páginas en ingles hablando sobre esto, pero no me quedan las cosas claras y no se como tengo que compilarlo. Parece, según pone en las librerías de SDL_Rotozoom en los comentarios, que debería de funcionar bien en c++, y es verdad cuando lo compilo en Linux, pero cuando lo hago en Windows da el error.

¿alguien me puede ayudar por favor?

muchas gracias a todos
uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)

sés

 Para compilar código C en una aplicación C++ haz esto:
#ifdef __cplusplus
extern C {
#endif

<código C>

#ifdef __cplusplus
}
#endif
Soy indeciso... ¿o no?

javiel

 Exactamente eso es lo que tiene el archivo SDL_Rotozoom.h que es el que importo a mis librerías.

El problema es que me da ese error. No se si es pq tengo que hacer algo a la hora de importar las Rotozoom desde mis librerías o no se que pasa.

¿alguna idea?

Gracias
uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)

javiel

 Bueno, al final se arregló. El problema parece que era que el código C, en la cabecera math.h carga un "template". C no puede trabajar con "templates" así que ahí daba el fallo.

Como ya estaba harto me he ido a la cabecera "math.h" y a saco he comentado el template. Creía que todo se iba a ir al traste, pero nada mas lejos de la realidad. Me ha compilado y funciona perfectamente.

Posiblemente esto me de problemas en el futuro, pero como ya se donde he hecho el cambio, ya veré que hacer. La caso es que he podido compilar

Saludos
uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.