C/Visual C - problema linkando

 
Vista:

problema linkando

Publicado por reik (5 intervenciones) el 03/05/2003 18:16:15
Hola, a ver si me podeis echar un cable que tengo un problema y no hay manera de solucionarlo. Estoy haciendo un pequeño programilla en c++ usando el sintetizador flite (hecho en c). Creo el proyecto y pongo las funciones que necesito. El problema llega cuando compilo que me da 7 errores. Estos errores son del tipo LNK2019, que creo que hacen referencia a que no linkas bien, que te falta poner algun fichero. La cosa esta en que se los pongo todos y me sigue dando problemas igual. Estos ficheros no son .dll ni .lib son .a, puede ser esta la causa ?? y si es así, como podría solucionarlo??
Tambien he probao (porque habia escuchado algo sobre eso) poner extern "C" a la libreria k hacia el include (flite.h). Aunque no se muy bien para que sirve, pero habia leido que si utilizabas ficheros compilados en c en programas c++ que tenías que ponerlo. Solo lo he puesto en el include :
extern "C" {
#include "flite.h"
};
no en las funciones del sintetizador que uso dentro (tambien lo probe y na de na :PPP).Se me olvidaba tengo Windows 2000 y uso el Ms visual c++ 6.0 (con el Microsoft Embedded me salen los mismos problemas).
Si alguien puede ayudarme, aunque no sea dando solucion pero si su opinion o consejo, se lo agradecería mucho. Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema linkando

Publicado por Xx Argentino Sexual xX (69 intervenciones) el 03/05/2003 22:26:05
Mira, muchas veces el error ese es, o porque no pones todos los .cpp en el proyecto, o bien, tenes incluida varias veces las librerias en las clases (los .h me refiero) y con q solo este en una de ellas esta bien. Yo te aconsejo q los pongas todos los #include "algo.h" en el main o programa principal q tengas, salvo q sea solo especifico de la clase q estes usando. Y de esa forma deberia andarte bien. Espero que te haya servido. Saludos.
Christian.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema linkando

Publicado por reik (5 intervenciones) el 04/05/2003 10:21:50
Eso pensaba yo, pero parece ser que no. Yo cogi como base el ejemplo del "Hello World", lo compile y iba bien. Luego le meti las funciones (son 3 creo) que necesitaba en el .cpp principal y le puse el #include flite.h en el mismo .cpp. Fue entonces cuando empezaron a venir los errores :( Gracias por el consejo. Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema linkando

Publicado por chuidiang (677 intervenciones) el 05/05/2003 06:43:24
Las librerias .a son de unix/linux y son totalmente incompatibles con vc++. Si tus librearías son .a y estás usando vc++ nunca te funcionará.
Buscate esas librerías para windows (.dll o .lib) o hazte el proyecto en linux.

Recuerda que además del include y llamar a las funciones, hay que poner las librerías .dll o .lib en los settings o en las options del vc++.

En cuanto al extern "c", si la librería está compilada en C y vas a usarla en C++, efectivamente necesitas poner el extern "C". Lo habitual es que el mismo .h que vayas a poner ya lo lleve (echale un ojo). Si no es así, quizás te valga con algo como lo que has puesto, pero depende un poco de el contenido del .h

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar