Dev - C++ - Error LNK2019

   
Vista:

Error LNK2019

Publicado por mr_technology (2 intervenciones) el 28/04/2011 10:57:12
Hola, estoy intentando implementar un sencillo programa que lee de un fichero de texto y va guardando lo datos en un vector. A la hora de compilar me salen los siguientes errores:

error LNK2019: símbolo externo "public: void __thiscall Objeto::cargar(class std::basic_istream<char,struct std::char_traits<char> > &)const " (?cargar@Objeto@@QBEXAAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z) sin resolver al que se hace referencia en la función "void __cdecl cargarDatos(char const *)" (?cargarDatos@@YAXPBD@Z) visualizador.obj visualizador

fatal error LNK1120: 1 externos sin resolver Debug\visualizador.exe visualizador

A continuación os pongo parte del código donde podría estar el fallo:

Esta es la clase principal:

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <gl/glut.h>
#include <GL/gl.h>
#include <iostream>
#include <fstream>
#include "Objeto.h"

Objeto objeto;
char fichero[128];

//Carga los datos del fichero
void cargarDatos(const char *fnombre)
{
// Intentamos cargar el fichero si es posible
std::ifstream archivo(fnombre);
if (archivo.is_open())
{
objeto.cargar( archivo );//AQUÍ SE PRODUCE EL FALLO
archivo.close();
}
}


/* Main Loop
* Open window with initial window size, title bar,
* RGBA display mode, and handle input events.
*/
int main(int argc, char** argv)
{
std::cout << " Introduzca el nombre de fichero de la figura: " ;
std::cin >> fichero;
cargarDatos(fichero);

return 0;
}

Esta es la clase objeto a la cual se llama desde principal:

void cargar( std::istream& input ){
tray.clear();
fig.clear();

unsigned int totalTray;
input >> totalTray;

for(unsigned int i = 0; i < totalTray; ++i)
{
float x, y;
input >> x >> y;
tray.push_back( Vec3(x,y,0.0) );
}

unsigned int totalFig;
input >> totalFig;

for(unsigned int j = 0; j < totalFig; ++j)
{
float x, z;
input >> x >> z;
fig.push_back( Vec3(x,0.0,z) );
}

//ordenar el vector fig en sentido antihorario

for (unsigned int k=0; k < tray.size(); ++k)//vamos recorriendo las trayectorias
{
VectorVec3 aux;
Vec3 pTray = tray[k];
for (unsigned int n=0; n < fig.size(); ++n)
{
Vec3 pFig = fig[n];
pFig.y = pTray.y;
pFig.x = pTray.x + pFig.x;
aux.push_back(pFig);
}
pm.push_back(aux);
}
}

Las librerías creo que están bien importadas puesto que en otro proyecto que hago casi lo mismo y me funciona tengo las mismas librerias. La parte que pone de OpenGL todavía no la estoy utilizando.

Espero que alguien pueda saber porque me da este error, muchas 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

Error LNK2019

Publicado por mr_technology (2 intervenciones) el 28/04/2011 12:35:56
vale ya he conseguido la solución, la dejo por si alguno comete el mismo error que yo:

Cuando declaro el método cargar me falta poner el Objeto:: delante:

void Objeto::cargar(std::istream& input){ }
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