dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

SDL error
Goto page 1, 2, 3, 4  Next
 
dev.gamez.lv Forum Index -> OpenGL
View previous topic :: View next topic  
Author Message
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Tue Mar 27, 2007 4:09 pm    Post subject: SDL error

Ir linkers: -lmingw32 -lSDLmain -lSDL -lopengl32 -lglu32

bet saka, ka:
cannot find -lSDLmain
id returned 1 exit status

Šķiet, ka trūkst kautkādi faili.

edit:
sorry, nepareizaa vietaa ieposteeju.
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Mar 27, 2007 5:33 pm    Post subject:

Nav SDLmain bibliotēkas - tev vai nu trūkst libSDLmain.a faila, vai arī kompilators to nespēj atrast.
Back to top
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Tue Mar 27, 2007 7:02 pm    Post subject:

tā arī biju domājis, ka nav kautkas ar biblioteku, tikai nezinaaju konkreeti, kursh fails nav.
Back to top
View user's profile
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Wed Mar 28, 2007 2:01 pm    Post subject:

Visu laiku man Dev C++ piekasās pie linkeriem.
Ir man šitādi -lmingw32 -lSDLmain -lSDL -lopengl32 -lglu32, bet nu vienalga kliedz, ka

in function console_main
[linker error] undefined reference to SDL_main
id returned 1 exit status
[build error] [SDL.exe] Error 1
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Mar 28, 2007 3:34 pm    Post subject:

-Dmain=SDL_main ir pie kompilera (nevis linkera!!) opcijām?

SDL'am ir tā, ka viņam ir sava main funkcija, kas veic tā inicializāciju. Tāpēc tavu main īstenībā ir jāsauc par SDL_main (kuru izsauks SDL pats no sava main'a). Šo visu panāk ar augstākminēto defainu pie kompilatora opcijām.

Taču: ar šo defainu, ja nemaldos, tu panāksi, ka līdz ar aplikāciju atvērsies melns konsoles logs, kurā drukāsies stdout un stderr. Tas ir ērti debugam.

Taču relīzei (kad gribi iedod savu programmu citiem) tas nav īpaši skaisti. Tāpēc ir risinājums, kad tu savu aplikāciju nokompilē kā GUI aplikāciju, tad nekāds konsoles logs by default nevērsies vaļā, bet stdout un stderr rakstīsies attiecīgi stdout.txt un stderr.txt failos. Šo variantu var panākt pieliekot linkera opcijām -mwindows opciju.
Back to top
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Wed Mar 28, 2007 4:21 pm    Post subject:

īsti nesapratu par to SDL_main, tapēc, kā viņu ir jālieto, lai izsauktu to SDL?

Nepatīk man tas consoles logs, un labi, ka ieteici par to GUI. Papētīšu!
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Mar 28, 2007 4:36 pm    Post subject:

Tev SDL_main nav ne no kurienes jāizsauc. To automātiski dara SDL bibliotēka.

Varbūt nepatīk, bet man bieži noder, kad vajag debugot sarežģītu kodu, tad man patīk salikt visādus std::cout << x; vai kautkādu stringu izdrukāšanu. Tajā logā tad visu var ērti redzeēt, nav nekādi faili jāvirina vaļā/ciet.
Back to top
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Wed Mar 28, 2007 5:56 pm    Post subject:

Nu jā, bet nevaru dabūt viņu pie dzīvības.

Code:

#include <stdio.h>     
#include <sdl/SDL.h>

int main() {
SDL_Init(SDL_INIT_VIDEO);

SDL_SetVideoMode(640, 480, 16, SDL_DOUBLEBUF|SDL_FULLSCREEN);

SDL_InitSubSystem(SDL_INIT_JOYSTICK);

SDL_Quit();
}


C++ compiler:
-Dmain=SDL_main

Linker:
-lmingw32 -lSDLmain -lSDL -lopengl32 -lglu32
-mwindows


Notiekti zini, kur kāds labāks apraksts un Source Code par GUI.
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Mar 28, 2007 6:40 pm    Post subject:

main funkcijai jāatbilst šādam funkcijas prototipam:
Code:
int main(int argc, char* argv[])

citādi tev nekas tur nelinkosies.

Tev atkal to pašu kļūdu teica? Ja tā, tad neesi pareizi kautkā norādījis to kompilētaja opciju -D...

Par kādu GUI source kodu tu prasi?
Back to top
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Wed Mar 28, 2007 7:00 pm    Post subject:

Bet kāda piemēram ir atšķirība starp tīru OpenGl un piemēram GUI aplikācijām?
Ar OpenGl es tak arī varu palaist video režīmu fullscrīnā.

Tātad, tagad man ir galvenais dabūt video režīmu ar fullskrīnu, kur es vēlāk varu ielādēt backgroundā bildes & darīt citas lietas.
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Mar 28, 2007 8:57 pm    Post subject:

Ja tu ar "GUI aplikācija" domā to, ko es iepriekš minēju, tad ar "GUI aplikācija" manis teiktajā kontekstā vajadzēja saprast, ka tā ir programma, kurai neatverās melns konsoles logs pēc noklusējuma.

Ja to tu nedomāji, tad es joprojām nesaprotu tavu "GUI aplikācija" jēdzienu.
Back to top
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Wed Mar 28, 2007 10:05 pm    Post subject:

es tā arī sapratu, kā tu to biji domājis, bet es tikai nevarēju atrast kārtīgi nevienu tādu piemēru, kur tas tiktu parādīts.
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Mar 28, 2007 10:54 pm    Post subject:

Kas tieši parādīts? Es vairs nesaprotu, par ko tu īsti to prasi..
Back to top
View user's profile Send e-mail
SkyD



Joined: 04 Oct 2006
Posts: 67

PostPosted: Wed Mar 28, 2007 11:16 pm    Post subject:

vnk es tagad paskatījos dažādus source code, un noprotu, ka ar tīru OpenGl arī var uztaisit logu fullskrīnā, bez konsoles loga sākumā.
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Mar 28, 2007 11:49 pm    Post subject:

Ar OpenGL tu nekādu logu vispār neuztaisīsi.
OpenGL ir tikai tīrs 2D/3D API nepiesaistīts nekādai logu sistēmai. Tas māk tikai zīmēt trijstūrus vai citus poligonus dažādi iekrāsotus/novietotus un visādi citādi apstrādātus.
Tāpēc jau OpenGL spēj darboties uz Windows, GNU/Linux, MacOSX, mobīlo telefonu OS'ēm un daudzām citām OS, ka pats par sevi OpenGL nekādi nenodrošina loga atvēršanu (vienalga vai fullscreenā vai ne-fullscreenā). Tto nodrošina konkrētās operētājsistēmas API.

Protams, lai atvieglotu darbu, un nevajadzētu katrai OS'ei mācīties kā tajā ir jāizveido logs, citi cilvēki ir pacentušies un uzrakstījuši dažādas open-sources bibliotēkas, kas ļauj šādas lietas darīt ļoti vienkārši (tikai ar dažu fju izsaukšanu) un galvenais - kross-platformiski. Populārākās šādas bibliotēkas priekš OpenGL, cik es zinu, ir: SDL, GLFW, FreeGLUT. Kā arī daudz daudz citu. Dažus no visa lielā bara vari apskatīt šeit: http://opengl.org/resources/libraries/windowtoolkits/
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> OpenGL All times are GMT + 2 Hours
Goto page 1, 2, 3, 4  Next
Page 1 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group