Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error LNK2019

Estas en el tema de Error LNK2019 en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/04/2011, 02:56
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 0
Error LNK2019

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_t raits@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!!
  #2 (permalink)  
Antiguo 28/04/2011, 04:35
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Error LNK2019

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){ }
  #3 (permalink)  
Antiguo 28/04/2011, 11:24
Avatar de Chris9294  
Fecha de Ingreso: abril-2011
Ubicación: Medellin Colombia
Mensajes: 15
Antigüedad: 13 años
Puntos: 1
Respuesta: Error LNK2019

See te falto el operador de ambito indicando el objeto. esta interesante tu codigo
  #4 (permalink)  
Antiguo 28/04/2011, 11:25
Avatar de Chris9294  
Fecha de Ingreso: abril-2011
Ubicación: Medellin Colombia
Mensajes: 15
Antigüedad: 13 años
Puntos: 1
Respuesta: Error LNK2019

Por que no Simplemente usaste llamadas a sistema?

Última edición por Chris9294; 29/04/2011 a las 00:44

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:48.