ورود

View Full Version : چرا این خطا به وجود میاد؟



1485159
جمعه 13 فروردین 1389, 11:27 صبح
سلام
وقتی از کد زیر در برنامم استفاده میکنم کامپایلر هنگام کامپایل این خطا رو به من میده:

if (TextureImage[0]=auxDIBImageLoadA("Data/logo.bmp"))
{
glGenTextures(1, &texture[0]);
}

[ILINK32 Error] Error: Unresolved external 'auxDIBImageLoadA' referenced from C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\DESKTOP\NEW FOLDER\DEBUG\FILE1.OBJ
ولی وقتی اون کد رو برمیدارم درست میشه!
ممنون.

pswin.pooya
جمعه 13 فروردین 1389, 11:36 صبح
فایلهای lib کتابخونه aux رو نداری. این کتابخونه خیلی جنجال بر انگیز شده و اکثر کاربرهای OpenGL باهاش مشکل دارن میتونی دنبال این فایلها روی نت بگردی و اونها رو داخل پوشه lib ویژوال استادیو کپی کنی و یا اینکه از devil برای لود تصویر استفاده کنی که به مراتب قویتر و بهتر هستش.

1485159
جمعه 13 فروردین 1389, 13:32 عصر
فایلهای lib کتابخونه aux رو نداری.
مگه چنتا lib هست؟ من یدونه GLAUX.DLL و یدونه هم GLAUX.LIB رو دارم که هردوشون رو در پوشه lib کپی کردم!
ممنون.

1485159
جمعه 13 فروردین 1389, 21:50 عصر
مگه چنتا lib هست؟ من یدونه GLAUX.DLL و یدونه هم GLAUX.LIB رو دارم که هردوشون رو در پوشه lib کپی کردم!
ممنون.

1485159
شنبه 14 فروردین 1389, 23:09 عصر
دیگه این مشکل منو دیونه کرده!!!!!!!!!!!

1485159
شنبه 14 فروردین 1389, 23:48 عصر
ممنون ولی الان هم این خطا رو میده:

[ILINK32 Error] Error: 'C:\PROGRAM FILES\CODEGEAR\RAD STUDIO\6.0\LIB\GLAUX.LIB' contains invalid OMF record, type 0x21 (possibly COFF)

1485159
یک شنبه 15 فروردین 1389, 00:03 صبح
نه مشکل نرم افزاری نیست!
3-4 بار هم ویندوز عوض کردم.....

pswin.pooya
یک شنبه 15 فروردین 1389, 00:19 صبح
فکر میکنم چون کامپایلر شما بورلند هست این ایراد رو میگیره.
که وقتی Linker میخواد به یه فایل OBJ یا LIB لینک کنه که با فرمت OMF بورلند مطابقت نداره ، این خطا بوجود میاد.
درواقع این فایل LIB شما با فرمت COFF کامپایلر مایکروسافت ایجاد شده با فرمت OMF بورلند مطابقت نداره.

درکل سعی کن کامپایلرت رو عوض کنی.

منبعی برای مطالعه این فرمتها و تفاوت اونها رو می شناسید؟ (مثل کتاب و یا مقاله)

amin1softco
یک شنبه 15 فروردین 1389, 06:41 صبح
به نظر من مشکل از فایل GLAUX.LIB هست یک نسخه که ماله C++ builder هست رو شما دانلود کن این نسخه ماله vc باید باشه برای تبدیلش به C++ builder اینجا رو ببین
http://www.codepedia.com/wiki/printer.aspx?WikiID=1&p=CppBuilderLinkingErrors

1485159
یک شنبه 15 فروردین 1389, 11:01 صبح
اگه ممکنه یه نسخه که ماله C++‎ builder هست رو آپلود کنید.
ممنون.:چشمک:

amin1softco
یک شنبه 15 فروردین 1389, 14:25 عصر
اینم gluax برای C++ Builder

1485159
یک شنبه 15 فروردین 1389, 18:02 عصر
لعنتی!!!!:عصبانی++:

[ILINK32 Error] Error: 'C:\PROGRAM FILES\CODEGEAR\RAD STUDIO\6.0\LIB\GLAUX.LIB' contains invalid OMF record, type 0x21 (possibly COFF)

amin1softco
یک شنبه 15 فروردین 1389, 19:09 عصر
ببین این درس 6 سایت nehe است که با borland c++builder 6 کامپایل شده و داخلش یک فایل glaux.lib هست اینو امتحان کن باید کار بده.....
http://nehe.gamedev.net/data/lessons/bcb6/lesson06_bcb6.zip

1485159
یک شنبه 15 فروردین 1389, 19:51 عصر
ایول
با اضافه کردن فایل lib، پروژه http://nehe.gamedev.net/data/lessons...son06_bcb6.zip (http://nehe.gamedev.net/data/lessons/bcb6/lesson06_bcb6.zip) به کنار برنامه مشکل حل شد!
حتی فایل lib ی که در پست 17 گذاشتید هم کار نکرد!
ممنون.

amin1softco
یک شنبه 15 فروردین 1389, 19:58 عصر
تستش کردم درسته کار می ده دوستان برای تستش می تونند از کد زیر استفاده کنند...
البته با Borland C++‎ Bulder 6

//---------------------------------------------------------------------------

#include <vcl.h>
#include <gl\glaux.h>
#include <conio.h>
#include <math.h>
#pragma comment (lib,"glaux.lib")

//---------------------------------------------------------------------------

//#pragma argsused

#define GL_PI 3.1415f

GLfloat xRot, yRot, aRot, zRot;
GLfloat ambientLight[] = {0.5, 0.5, 0.5, 1.0};
GLfloat spotDirN[] = {0.0, 0.0, -1.0};
GLfloat lightPos[] = {0.0, 0.0, 75.0};
GLfloat specular[] = {1.0, 1.0, 1.0, 1.0};
GLfloat specref[] = {1.0, 1.0, 1.0, 1.0};

void CALLBACK Render(void);

void CALLBACK animacja(void)
{
aRot += 1;
Render();
}



void SetupRC()
{
glEnable(GL_DEPTH_TEST);
glFrontFace(GL_CCW);
glEnable(GL_CULL_FACE);

glEnable(GL_LIGHTING);

glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);

glLightfv(GL_LIGHT0, GL_DIFFUSE, ambientLight);
glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 60.0);
glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 100.0);
glEnable(GL_LIGHT0);

glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
glMaterialfv(GL_FRONT, GL_SPECULAR, specref);
glMateriali(GL_FRONT, GL_SHININESS, 128);

glClearColor(0.0, 0.0, 0.0, 1.0);
}

void CALLBACK Render(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glColor3f(0, 0, 1);
auxSolidSphere(30.0);

glPushMatrix();

glRotatef(yRot, 0.0, 1.0, 0.0);
glRotatef(xRot, 1.0, 0.0, 0.0);

glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, spotDirN);

glColor3f(1, 0, 0);

glTranslatef(lightPos[0], lightPos[1], lightPos[2]);
auxSolidCone(4.0, 6.0);

glPushAttrib(GL_LIGHTING_BIT);

glDisable(GL_LIGHTING);
glColor3f(1, 1, 0);
auxSolidSphere(3.0);

glPopAttrib();

glPopMatrix();
glFlush();
auxSwapBuffers();
}


void CALLBACK Skalowanie(GLsizei w,GLsizei h)
{
glMatrixMode(GL_PROJECTION);
GLfloat s = 100.0f;
if(h==0)
h=1;
glViewport(0,0,w,h);
glLoadIdentity();
if(w<=h)
glOrtho(-s , s , -s* h/w , s * h/w , -s , s);

else
glOrtho(-s* w/h , s * w/h , -s , s , -s , s);
}


void CALLBACK lewo(void)
{
xRot-=10.0;
}


void CALLBACK prawo(void)
{
xRot+=10.0;
}

void CALLBACK gora(void)
{
yRot+=10.0;
}

void CALLBACK dol(void)
{
yRot-=10.0;
}

void CALLBACK spacja(void)
{
zRot-=10.0;
}

void CALLBACK enter(void)
{
zRot+=10.0;
}


void main(void)
{
auxInitDisplayMode (AUX_DOUBLE | AUX_RGBA);

auxInitPosition(100 , 100 , 600 , 600);
auxInitWindow("Testowanie swiatla");
auxKeyFunc(AUX_LEFT,lewo);
auxKeyFunc(AUX_RIGHT,prawo);
auxKeyFunc(AUX_UP,gora);
auxKeyFunc(AUX_DOWN,dol);
auxKeyFunc(AUX_RETURN,enter);
auxKeyFunc(AUX_SPACE,spacja);

auxReshapeFunc(Skalowanie);
auxIdleFunc(animacja);
SetupRC();
auxMainLoop(Render);
}