• Viernes 8 de Noviembre de 2024, 21:35

Autor Tema:  Error LNK2019  (Leído 1469 veces)

mr_technology

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Error LNK2019
« en: Jueves 28 de Abril de 2011, 10:59 »
0
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    Debugvisualizador.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!!

mr_technology

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Error LNK2019
« Respuesta #1 en: Jueves 28 de Abril de 2011, 12:36 »
0
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){ }