Linker Problem
-
Moin alle zusammen,
und zwar habe ich sehr oft folgenden Fehler:
Texture.obj : error LNK2001: Nichtaufgeloestes externes Symbol _auxDIBImageLoadA@4
Debug/GL_Viewing.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.Dieser Fehlercode ist nur ein Example, ich hatte den Fehler schon in vielen anderen Pojekten. Habe es jedoch irgendwie immer geschafft ihn zu beheben, jedoch ist nun der Zeitpunkt gekommen, heraus zu finden, warum er entsteht !
Ich arbeite mit VS6 und zurzeit mit der OpenGl lib.
Ich kann euch leider keinen Codeschnipsel geben, da ich nicht weiss, in welchen Bereich der Fehler auftritt ... vielleicht hilft jedoch die Texture.cpp weiter.
Danke erstmal an alle, die mir helfen wollen !!!!Hier die Texture.cpp
#include "texture.h" CTexture::CTexture() { texID = 0; } CTexture::~CTexture() { if(glIsTexture(texID)){ glDeleteTextures(1, &texID); } } bool CTexture::LoadTexture(char *filename) { FILE *file = fopen(filename, "rb"); if(file==NULL)return false; AUX_RGBImageRec *image = auxDIBImageLoad(filename); if(image==NULL)return false; glGenTextures(1, &texID); glBindTexture(GL_TEXTURE_2D, texID); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image->sizeX, image->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, image->data); delete [] image->data; return true; } bool CTexture::LoadTextureWithAlphaMask(char *texname, char *maskname) { FILE *file = fopen(texname, "rb"); if(file==NULL)return false; file = fopen(maskname, "rb"); if(file==NULL)return false; AUX_RGBImageRec *tex = auxDIBImageLoad(texname); AUX_RGBImageRec *mask = auxDIBImageLoad(texname); if(tex->sizeX!=mask->sizeX || tex->sizeY!=mask->sizeY){ MessageBox(NULL, "Texture doesn't match the mask!", "Error", MB_OK); return false; } UCHAR *data = new UCHAR[4*tex->sizeX*tex->sizeY]; ZeroMemory(data, 4*tex->sizeX*tex->sizeY); for(int i=0;i<tex->sizeX*tex->sizeY;i++){ data[i*4] = tex->data[i*3]; data[i*4+1] = tex->data[i*3+1]; data[i*4+2] = tex->data[i*3+2]; data[i*4+3] = mask->data[i*3]; } glGenTextures(1, &texID); glBindTexture(GL_TEXTURE_2D, texID); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tex->sizeX, tex->sizeY, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); delete [] data; delete [] tex->data; delete [] mask->data; return true; } void CTexture::BindTexture() { glBindTexture(GL_TEXTURE_2D, texID); } GLuint CTexture::GetTexID() { return texID; }
-
passiert wenn man die lib nicht mit linkt
mit vc schafft ein #pragma comment(lib,"deine.lib") fuer abhilfe
-
Die Funktion ist in glaux.lib.
-
das ist ein teil in einem prog, beim copiliern kommt diese fehelrmeldung unten. kann mir bitte jmd helfen????
dankevoid findAllIndexOf(char c,const MyString& s)
{
unsigned uStartPos=0;
int idx;
cout << "Zeichen \'" << c << "\' an Index :";
while ((idx=s.indexOf(c, uStartPos))!=-1)
{
cout << ' ' << idx;
uStartPos=idx+1;
}
}C:\Programme\Microsoft Visual Studio\MyProjects\Ueb2\Ueb2c.cpp(37) : error C2662: 'indexOf' : this-Zeiger kann nicht von 'const class MyString' in 'class MyString &' konvertiert werden
-
1. Was hat die Frage mit dem Rest des Threads zu tun?
2. indexOf() ist anscheinend nicht const.
-
Hey danke es klappt tatsächlich mit
#pragma comment(lib,"glaux.lib")So nun noch nachlesen was pragma genau macht um auch zu verstehen, warum und wieso es auf einmal funktioniert, aber erstmal ist mir sehr geholfen danke !!!!

CU ALL