Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Evo kako 'spremiti' kompajler za OpenGL

[es] :: 3D programiranje :: Evo kako 'spremiti' kompajler za OpenGL
(TOP topic)

[ Pregleda: 5544 | Odgovora: 10 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1296
*.bankerinter.net

Sajt: www.mycity.co.yu


Profil

icon Evo kako 'spremiti' kompajler za OpenGL25.03.2002. u 14:09

--- Spremanje kompajlera za OpenGL pod Windowsom ---

----------------- 0. korak -----------------
Prvo, evo koji su sve fajlovi potrebni (podelicu ih u 3 grupe):

- gl.h
- glu.h
- glut.h (opciono, mada preporucujem koriscenje GLUT-a)

- opengl32.dll (vec ga imate u sistemskom direktorijumu Windowsa)
- glu32.dll (takodje ga imate u sistemskom direktorijumu Windowsa)
- glut32.dll (opciono)

- opengl32.lib
- glu32.lib
- glut32.lib (opciono)

----------------- 1. korak -----------------

Generalno, svaki normalan kompajler vec ima gl.h i glu.h.
Dakle, verovatno vam samo treba glut.h, i njega mozete skinuti sa http://www.xmission.com/~nate/glut.html (treba vam ona binarna verzija, koja sadrzi, header fajl, dll fajl, i lib fajl za VC++).
Sa tog sajta cete skinuti ZIP fajl u kojem cete naci glut.h, koji trebate da iskopirate u direktorijum /include/GL vaseg kompajlera. Ako ne znate koji je to direktorijum, potrazite na disku fajl gl.h i pogledajte u kom direktoriju se on nalazi - u tom treba i ovaj.

Ako pak nemate gl.h i glu.h, onda:
1) ili skinite Mesa biblioteku - http://www.mesa3d.org/. Trebalo bi da je iskompajlirate, a ako vam to ne podje za rukom onda procitajte drugi predlog.
2) ili skinite http://download.microsoft.com/.../info/1/W95/EN-US/Opengl95.exe - tu cete naci gl.h i glu.h.
Prvi predlog NE preporucujem pocetnicima, jer ne verujem da ce uspeti da iskompajliraju Mesa biblioteku. Za pocetnike preporucujem drugi predlog!


----------------- 2. korak -----------------

Dalje, opengl32.dll i glu32.dll 99% vec imate u sistemskom direktorijumu Windowsa. Ako ih nemate, skinite ih sa http://download.microsoft.com/.../info/1/W95/EN-US/Opengl95.exe (ovaj link smo vec gore davali) i iskopirajte ih u sistemskom direktorijumu Windowsa.
Fajl glut32.dll se nalazi u onom GLUT-ovom ZIP fajlu koji ste vec skinuli, i njega iskopirajte u sistemski direktorijum Windowsa (najcesce je to c:\windows\system)

----------------- 3. korak -----------------

I na kraju treba kreirati .lib fajlove.
LIB fajlovi sadrze spisak funkcija koji neki DLL sadrzi. Kompajleru je potreban taj spisak da bi znao koje funkcije (koje pozivas iz programa) postoje u odredjenom DLL-u.

Kod VC++a su .lib fajlovi vec kreirani, ili se kreiraju automatski, tako da ako koristite VC++ nista ne trebate da radite u ovom koraku.
Ovo pricam napamet (tako sam cuo), jer nemam kod sebe VC++ da ovo proverim.
Moguce je jedino (ako koristite VC++) da vam nedostaje glut32.lib, a njega imate u onom GLUT-ovom ZIP fajlu koji ste skinuli. Iskopirajte ga u /lib direktorijum VC++a (putanja je skoro ista kao do /include, samo sto se ne zavrsava sa /include nego sa /lib)
Ako kojim slucajem nemate opengl32.lib i glu32.lib - skinite http://download.microsoft.com/.../info/1/W95/EN-US/Opengl95.exe (ovaj link smo vec davali gore) - tu cete ih naci, pa ih samo iskopirajte /lib direktorijum VC++a.

Kreiranje .lib fajlova kod Borlandovog kompajlera se postize komandom implib [imefajla].lib [imefajla].dll (koju naravno treba ukucati u command promptu).
Generalno, treba otkucati sledece ako koristite Borlandov kompajler:
implib opengl32.lib opengl32.dll
implib glu32.lib glu32.dll
implib glut32.lib glut32.dll

Kada pravite ove .lib fajlove, vodite racuna da vam .dll fajlovi (koje navodite) budu u direktorijumu u kojem se nalazite. Fajlove opengl32.dll i glu32.dll imate u sistemskom direktorijumu Windowsa, pa ili ih iskopirajte u direktorijum u kome se nalazite, ili u komandoj liniji navedite putanju do DLLa (ovako: implib glu32.lib c:\windows\system32\glu32.dll). Fajl glut32.dll imate u onom GLUT-ovom ZIP fajlu koji ste skinuli...
Kreirane .lib fajlove zatim treba iskopirati u /lib direktorijum vaseg kompajlera (putanja je skoro ista kao do /include, samo sto se ne zavrsava sa /include nego sa /lib).

Verovatno je i kod ostalih kompajlera slican postupak kreiranja .lib fajla (mozda cak i potpuno isti).

----------------- 4. korak -----------------
Svo 'spremanje kompajlera' je gotovo, i sada treba videti kako izgleda jedan OpenGL program:

Citat:

#if (defined(__WIN32__) || defined(WIN32))
#include <windows.h>
#endif

#include <stdio.h>
#include <stdlib.h>

#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>

GLfloat boja1[] = { 0.3, 0.7, 0.0, 1.0 };
GLfloat boja2[] = { 0.0, 0.2, 0.8, 1.0 };
float i=0;

void draw(void)
{
i++;
if (i>360) i=0;

glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glPushMatrix();
glTranslatef (0, 0, 50);
glMaterialfv(GL_FRONT, GL_DIFFUSE, boja1);
glBegin (GL_QUADS);
glTexCoord2f (0.0,0.0);
glVertex3f (-10.0, -10.0, 20.0);
glTexCoord2f (1.0, 0.0);
glVertex3f (10.0, -10.0, 35.0);
glTexCoord2f (1.0, 1.0);
glVertex3f (10.0, 10.0, 0.0);
glTexCoord2f (0.0, 1.0);
glVertex3f (-10.0, 10.0, 0.0);
glEnd ();
glPopMatrix();

glPushMatrix();
glTranslatef (0, 0, 50);
glRotatef(i, 1, 0, 0);
glRotatef(i, 0, 1, 0);
glMaterialfv(GL_FRONT, GL_DIFFUSE, boja2);
glutSolidTorus (1, 3, 3, 3);
glPopMatrix();

glutSwapBuffers();
}

void light (void)
{
GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
glLightfv (GL_LIGHT0, GL_POSITION, light_position);
glEnable (GL_LIGHTING);
glEnable (GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
}

void reshape (int width, int height)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, (GLfloat)width/(GLfloat)height, 1.0f, 1000.0f);
gluLookAt(0, 0, -1, 0, 0, 0, 0, 1.0, 0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
}
}

int main(int argc, char* argv[]) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_RGB|GLUT_DEPTH);
glutEnterGameMode();
glutDisplayFunc(draw);
glutSetCursor(GLUT_CURSOR_NONE);
reshape(640,480);
light();
glutKeyboardFunc(keyboard);
glutIdleFunc(draw);
glutMainLoop();
return 0;
}


Znate vec kako se kompajlira...
Ako koristite Borland C/C++ FREE compiler (koga mozete skinuti sa ftp://ftpd.borland.com/downloa...ilder/freecommandLinetools.exe - 8.5 MB), to ide ovako (u command promptu): bcc32 primer.c
Ako se bcc32 ne odaziva, verovatno niste procitali readme.txt koji zahteva da se rucno konfigurisu putanje do kompajlera i linkera.

Za ucenje OpenGL-a preporucujem odlican tutorijal na adresi: http://ask.ii.uib.no/ebt-bin/n...naweb/SGI_Developer/OpenGL_PG/
Srecno!!!

[Ovu poruku je menjao zastita dana 29.03.2002 u 12:00 AM GMT]
25.03.2002. u 14:09 

Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1296
*.bankerinter.net

Sajt: www.mycity.co.yu


Profil

icon Evo kako 'spremiti' kompajler za OpenGL u Linuxu!25.03.2002. u 14:10
--- Spremanje kompajlera za OpenGL pod Linuxom ---

Ukratko, treba vam MesaLIB (skinite je sa http://www.mesa3d.org/) i glut-lib ( http://www.opengl.org/developers/documentation/glut/index.html - skinuti source code distribuciju). Iskompajlirajte obe biblioteke, i to je to.
Ako koristite RedHat, imate sve to vec iskompajlirano - nadjite na instalacionim CD-ima mesa-devel RPM fajl, i instalirajte ga. MADA, ja mislim da je mesa-devel po defaultu vec instaliran!
Kompajliranje OpenGL programa ide ovako: gcc primer.c -o primer -lGL -lGLU -lglut
Naravno, kompajlirani program se startuje sa ./primer , a inace, source code je isti kao i za Win, sve je 100% portabilno.

Jos samo da kazem da je za brze 2D/3D perfomanse neophodno skinuti drajvere za graficku karticu. Sto se tice NVidia kartice, njihove drajvere cete naci na sajtu www.nvidia.com, pa tamo pod Drivers / Linux...
Bez tih drajvera cete imate oko 3 frejma po sekundi (ja sa drajverima imam oko 200-300 frejma po sekundi)
Srecno!
25.03.2002. u 14:10 

Dragi Tata

Član broj: 1958
Poruke: 3880
199.171.112.*

Sajt: www.novetehnologije.com


Profil

icon Re: Evo kako 'spremiti' kompajler za OpenGL u Windowsu!25.03.2002. u 16:13
Samo da dodam dve sitnice:

1. Za Windows: Od 32-bitnih Windows-a, jedino Win 95 nema fajlove opengl32.dll i glu32.dll. Svi ostali (98/ME, NT) ih imaju.

2. Za Linux: I Mandrake distribucija (bar verzija 7.2) ima Mesa-u na instalacionim CD-ovima.
25.03.2002. u 16:13 

Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1296
*.bankerinter.net

Sajt: www.mycity.co.yu


Profil

icon Evo kako 'spremiti' VC++ za OpenGL28.03.2002. u 21:39
--- Evo kako 'spremiti' VC++ za OpenGL ---

Ako imate VC++, samo ubacite glut.h u /include i glut32.lib i /lib.
To je sve.
Iz 2 koraka se instalira opengl na VC++ !!!

[Ovu poruku je menjao zastita dana 03.04.2002 u 04:04 PM GMT]
28.03.2002. u 21:39 

Markotron
Marko Bozic
Hrvatska

Član broj: 74444
Poruke: 101
*.adsl.net.t-com.hr.



Profil

icon Re: Evo kako 'spremiti' kompajler za OpenGL23.07.2006. u 23:40
Zasto mi javi "undefinded reference ....."???
23.07.2006. u 23:40 

tosa

Moderator
Član broj: 1811
Poruke: 1247
*.ubisoft.com.cn.



Profil

icon Re: Evo kako 'spremiti' kompajler za OpenGL24.07.2006. u 02:40
Tema je stara preko 4 godine. Na šta konkretno misliš?
Soylent green: over 6 billion served!
24.07.2006. u 02:40 

Markotron
Marko Bozic
Hrvatska

Član broj: 74444
Poruke: 101
*.adsl.net.t-com.hr.



Profil

icon Re: Evo kako 'spremiti' kompajler za OpenGL24.07.2006. u 08:26
Sve sam napravio sto pise gore....

Kopiro sam tri .dll fajla u system dir, to je u redu tamo su.
Kopiro sam tri .h fajla u include dir i kopiro sam tri .lib fajla u lib dir... i to je sve sto sam napravio... međutim kad pokusam pokrenuti neki program koji u sebi sadrži #include <gl/glut.h> javlja mi gresku:

[Linker error] undefined reference to `__glutInitWithExit@12'
[Linker error] undefined reference to `__glutCreateWindowWithExit@8'
[Linker error] undefined reference to `__glutCreateMenuWithExit@8'

inace ako nema tog includa radi normalno.

Nekuzim u cemu je problem? Mozda moram nesto podesit u dev-c++-u?
24.07.2006. u 08:26 

bkaradzic
Branimir Karadžić
EA/Pandemic
Los Angeles, CA

Član broj: 14953
Poruke: 1545
67.151.201.*

Sajt: www.mercs2.com


Profil

icon Re: Evo kako 'spremiti' kompajler za OpenGL24.07.2006. u 22:33
Skini glut-3.7.6-bin.zip sa http://www.xmission.com/~nate/glut.html.

U "additional dependencies" polje za linker ubaci glut32.lib i kopiraj glut32.dll u windows/system folder ili u folder odakle se .exe fajl izvršava...
24.07.2006. u 22:33 

Markotron
Marko Bozic
Hrvatska

Član broj: 74444
Poruke: 101
*.adsl.net.t-com.hr.



Profil

icon Re: Evo kako 'spremiti' kompajler za OpenGL24.07.2006. u 23:38
skinuo sam, unzipo i kopiru sam dll u system, a lib sam kopiro u lib direktori dev-cppa, dok glut.h sam kopiro u include direktorij dev-cppa.
no i dalje mi ne radi
24.07.2006. u 23:38 

bkaradzic
Branimir Karadžić
EA/Pandemic
Los Angeles, CA

Član broj: 14953
Poruke: 1545
67.151.201.*

Sajt: www.mercs2.com


Profil

icon Re: Evo kako 'spremiti' kompajler za OpenGL24.07.2006. u 23:57
Citat:
Markotron: no i dalje mi ne radi

Da li dobijaš istu linker grešku ili je sada nešto drugo?

Moraš da budeš precizan da bi mogli da ti pomognemo... Ovo da ti i dalje ne radi ništa ne znači. Uvek napiši šta vidiš u output prozoru.
24.07.2006. u 23:57 

Markotron
Marko Bozic
Hrvatska

Član broj: 74444
Poruke: 101
*.adsl.net.t-com.hr.



Profil

icon Re: Evo kako 'spremiti' kompajler za OpenGL25.07.2006. u 10:45
Uvjak isto, odnosno nisam nista ni mjenja jer sto si mi ti reko da napravim ja sam ve uradio.

Jedino ovaj 'additional dependecies' ne znam sta znci. Gdje je to polje za linker
25.07.2006. u 10:45 

[es] :: 3D programiranje :: Evo kako 'spremiti' kompajler za OpenGL
(TOP topic)

[ Pregleda: 5544 | Odgovora: 10 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.