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!!