[Megoldva köszönet igoor-nak]freeglut-nem értem a hibaüzenetet.

 ( emberk | 2013. május 24., péntek - 11:17 )

Sziasztok.

Helyeseben a jelentését értem, de szerintem nem logikus, vagy én hagyok ki valamit. Ugyanis adott egy egyszerű feladat. Van egy jó hosszú mérés, aminek az eredményeit kelene ábrázolnom. Mivel piszok sok pont gondoltam legyen opengl GL_PROJECTION, valamint jól jönnének mértékegységek, mért adatok megjelenítve... Ami azért elég praktikus tud lenni. Így kezdtem hozzá,:

(Pastebin lett belőle, mert itt rosszul jelenik meg)
http://pastebin.com/uq0KK90n

Fordításkor viszont ez a hibaüzenet fogad:
main.cpp
ldc: 1 file(s) built in (0:01.08), 1089 msecs / file, duration = 1091 msecs, parallelization 0%
Linking...
/home/ek/upp/_out/MyApps/ldc/GCC4.Debug.Debug_Full.Gui.Main.Shared.Sse2/main.o: In function `OpenGLExample::RenderBitmapString(float, float, Upp::String)':
/home/ek/MyApps/ldc/main.cpp:86: undefined reference to `glutBitmapTimesRoman10'
/home/ek/MyApps/ldc/main.cpp:86: undefined reference to `glutBitmapString'
collect2: ld returned 1 exit status

There were errors. (0:01.87)

Holott mind a glutBitmapCharacter, és a glutBitmapString a headernek (freeglut_std.h, ami freeglut.h-része) megfelelően van létrehozva, és a GLUT_BITMAP_TIMES_ROMAN_10 is definiált font, ugyanitt. Egyszerűen nem látok okot a hibára. Ötlete valakinek van?

Utóirat. Bármilyen alternatív megoldás is jó, hogy hogyan lehet GL_PROJECTION ódban betűket kiiratni.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

A headerjeid a freeglut-ból vannak, de vajon a libek is, amihez linkelnél?

Elvileg a komplett /usr/lib be van linkelve, és ez tartalmazza a freeglut libjeit is. fordításkor -lglut is van.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Na ez az, szerintem -lfreeglut kellene.

Ugyan ez a hiba maradt.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

-lglut nem hasznal? Milyen rendszeren forditasz? Es foleg hogyan? ;)

zzzzzzzzzzzzzzz, nem lehet tul surgos a dolog ;)

Engem tenyleg erdekelne, hogyan es milyen rendszeren forditasz. Az ugyanis mar onmagaban vicces szamomra, de lehet hogy csak en vagyok tul konzervativ, hogy akar -lglut akar -lfreeglut opcioval probalsz meg linkelni, ugyanaz az 'undefined reference' a kimenet. Az meg hogy?! Szerintem nem kapja meg a linker az opciot, ezert nem is mekeg, hogy a ket eset egyikeben nem talalja az adott libet, ketlem, hogy mindket neven elerheto lenne :) Ez a rendkivul komplex kod lefordul a ket opcio valamelyikevel?

#include <GL/freeglut.h>
int main() {
    glutBitmapString(GLUT_BITMAP_TIMES_ROMAN_10, NULL);
}

:D Nos sok volt az egyéb dolgom, most értem haza hazahoztam a melót, és a vic az, hogy gentoo alatt fordul, de seg-fault-al elszáll. A munkahelyi környezetem xubuntu-12.04 gcc-4.6-os verzió. Itthon ugyanez, csak gentoo. A fejlesztői környezet pedig ultimate++. De itthon legalább előrébb vagyok, mert itt fordul, csak fagy. Legalább tudok debugolni.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

A ket rendszer kozotti kulonbsegen nem kell csodalkozni, mashol lehetnek a libek (foleg ha multilib tamogatas is van), lehet mas a linker stb.

Na jo, akkor annyit mar tudunk, hogy 12.04, ebben az esetben viszont a korrekt linker opcio a -lglut. Ha a -lfreeglut eseten nem kapsz olyan hibauzenetet, hogy a linker nem talalja a libet ('cannot find -lfreeglut'), akkor a linkerhez el sem jut a fenti opcio es ekkor jon az 'undefined reference to' uzenet. Ez az, amit korabban irtam.

Ja, a hibauzenetek ill. azok sorrendje fugghet attol is, hogy melyik linkert hasznalja a projekted, ill. melyik nalad a default (ld -v). Ugyanis, ha a binutils-gold csomag is installalva van, akkor a GNU gold (ld.gold) lesz az alapertelmezett, ellenkezo esetben a GNU ld (ld.bfd).

En megneznem a projekt konfiguraciot, szerintem ott lesz valami eltolva ;)

De ha ra lehet venni ezt az ldc-t (fogalmam sincs mi ez), hogy kiirja az eppen futtatott parancsokat (gondolom csak egy gcc-t indit a vegen a hatterben), az eleg sokat segithetne... Regebben voltak sorrendisegi nyugok a gcc-nel, akar meg az is lehet gond.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Na alakul ez. Köszönöm a segítséget. Bár az Ubuntu "hibát" továbbra sem értem. De Gentoo alatt haladok. Csak itthon sok más dolgom is van (főként egy 3 éves kis srác formájában ami valljuk be sokkal jobb dolog mint programozni). Előre is elnézést, mert én nem vagyok programozó, hanem fizikus, csak az analitikusan megoldhatatlan dolgokat szoktam programban megírni. Ergo autodidakta tanultam a C/C++-t így egy csomó praktikus alap hiányzik A következőt hámoztam ki:
freeglut ERROR: Function called without first calling 'glutInit'.
Heap leaks detected!
ldc: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.

Értem nincs glutinit.
ha kézzel megcsinálom akkor viszont ezt kapom:

freeglut (fake): illegal glutInit() reinitialization attempt
Heap leaks detected!
ldc: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Nekem ebből úgy tűnik, hogy van valahol egy glutinit hívásod, csak az nem az első glut hívás a programban, ezért kapod az első hibát, viszont mikor a második esetben berakod a glutinit-et, akkor az eredeti glutinit is ott marad, így kapod a második hibát.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Pontosan, ahogy tr3w irta. Meghivod a glutInit()-et a debuggerben, azzal az API inicializalasa elintezve, valahol a kodban viszont meghivod megegyszer, ezert kapod a masodik hibat. Azt, hogy hol van a masodik hivas, megmondja a debugger is. De szerintem inkabb foglalkozz a fiaddal, vannak dolgok amiket nem lehet kesobb bepotolni ;)

Az a gyanúm, hogy a "ha kézzel megcsinálom" kitétel nem olyan advanced dologra vonatkozott mint a debuggerből hívás, csak szimplán berakta a main()-be. :)

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Stimm. :)

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

lol

Nem látom a linker opcióit, ezért rákérdezek... Ugye így próbálod fordítani:


-lglut -lGLU -lGL

---
Science for fun...

Igen. Fentebb írtam Gentoo alatta fordul, de szegmentációs hibát kapok. Ubuntu alatt nem kapja meg a linker az opciót, amit nem értek, hogy miért. Nyomozom.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Ellenőrizd le a .so fájlok meglétét. Ha link, jó helyre mutat-e. Ha ATI drivered van, akkor van-e link rá egyáltalán a /usr/lib könyvtárban.

Aztán ha nincs, vagy rossz helyre mutat javítsd ki, vagy a fordítónak add meg a helyét, a -lgl kapcsolón kívül: -L/usr/lib/ahol_van_pont_so

/usr/lib$ find -name *glut*
./pymodules/python2.7/OpenGL/GLUT/freeglut.pyc
./pymodules/python2.7/OpenGL/GLUT/freeglut.py
./debug/usr/lib/x86_64-linux-gnu/libglut.so.3.9.0
./x86_64-linux-gnu/libglut.so.3.9.0
./x86_64-linux-gnu/libglut.so.3
./x86_64-linux-gnu/libglut.so
./x86_64-linux-gnu/libglut.a

Szerintem így rendben van. De megnéztem -L/usr/lib/x86_64-linux-gnu/libglut.so paraméter mellett de az eredmény ugyanez. Belenéztem a libglut.so-ba és benne vannak azok amiket nem talál.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

-L/usr/lib/x86_64-linux-gnu/libglut.so

Ez nem jo, a -L azt adja meg, hol keressen, nem azt, hogy mit. Es nem az a baj, hogy nincs benne a libben, amit keres, hanem, hogy nem is keres, vagy csak nem jokor ;) Ha veszed a fenti primitiv peldat es megprobalod igy forditani: gcc -lglut main.c, akkor kapni fogsz egy linker hibat, ha viszont igy probalod: gcc main.c -lglut, akkor menni fog. Szamit a sorrend, ez van. Es ez az, amit meg kellene nezned a projektedben. Egyszerubb lenne, ha idevagnal egy build logot, vagy legalabb valami makefile-t.

Ezt az ldc-t kellene tudni mi ez, mert en meg sose hallottam rola, bar ez igazabol az en szegenysegi bizonyitvanyom csak. Ki kellene eroszakolni belole, hogy halalpontosan mit hiv meg. Legrosszabb esetben elteriteni a gcc binarist, es kezzel kiechozni a parametereket.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Hehe, az a projekt neve :)

így van :) (l)og(d)e(c)oder Egy viszonlyag bonyolult gép logjait elemzi, és abból a benne lévő eszköz kopottságára meghibásodás lehetőségére ad előrejelzést ..... Plazmafizika témakör egyébként.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Az ldc-t nem csodálom, hogy nem ismered, mert én írom. :D Egy mérési adat elemző cucc. A matematika már rég megvan, meg is jelenitem a szüksége függvényket, csak nincsnek feliratok, mert egy 10 soros függvényhez kellene ez a nyamvadt glut.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Javítottam. Az eredmény ugyanez.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Persze, mivel a -L nem is csinalt semmi erezhetot ;) Latom, meg nem vilagos:
-L megadja, hol keressen libek utan, ez neked most nem is kell, a lib "jo" helyen van ;)
-l megadja, mit keressen. Nekunk -lglut kell. Ez valoszinuleg benne van a projektedben, ami viszont nem mindegy, milyen sorrendben kapja meg a linker. Ezert kellene latni a build kimenetet. Make-et hasznalsz egyebkent?

Nem használok make-t, hanem az ultimate++ beépített rendszerét. Egyébként nagyon örülnék, ha valahogy Make filet lehetne belőle kihámozni, mert mindíg komplett ide kell, ha valahol le akarom fordítani. Ettől függetlenül viszont egy remek cucc, mert arra amaire nekem kell nagyon jól. Nézem itt projekt leírókat (amiket automatikusan generált az U++), de eből én nem látom, hogy milyen sorrendben megy a linkelés..... Bemásolom ,mert kicsik:

ldc.upp tartalma:
uses
CtrlLib,
GLCtrl;

file
ldc.h,
main.cpp,
ldc.lay;

mainconfig
"" = "GUI SSE2";

ez pedig egy init nevű file:
#ifndef _ldc_icpp_init_stub
#define _ldc_icpp_init_stub
#include "CtrlLib/init"
#include "GLCtrl/init"
#endif

Van még egy lay-file de az csak a grafikus elemek definícóója, a többi pedig a forráskód.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Ez pedig a kimenet:

----- CtrlLib ( GUI SSE2 GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (1 / 10)
BLITZ: LabelBase.cpp Button.cpp Switch.cpp EditField.cpp Text.cpp LineEdit.cpp DocEdit.cpp ScrollBar.cpp HeaderCtrl.cpp ArrayCtrl.cpp MultiButton.cpp PopupTable.cpp DropList.cpp DropCho
ice.cpp Static.cpp Splitter.cpp FrameSplitter.cpp SliderCtrl.cpp ColumnList.cpp Progress.cpp AKeys.cpp RichTextView.cpp Prompt.cpp Help.cpp DateTimeCtrl.cpp Bar.cpp MenuItem.cpp MenuBar
.cpp ToolButton.cpp ToolBar.cpp ToolTip.cpp StatusBar.cpp TabCtrl.cpp TreeCtrl.cpp DropTree.cpp DlgColor.cpp ColorPopup.cpp ColorPusher.cpp FileList.cpp FileSel.cpp FileSelUtil.cpp Prin
terJob.cpp Windows.cpp Win32.cpp Gtk.cpp TrayIconWin32.cpp TrayIconX11.cpp TrayIconGtk.cpp Update.cpp CtrlUtil.cpp LNGCtrl.cpp Ch.cpp
ChWin32.cpp
ChGtk0.cpp
ChGtk.cpp
CtrlLib.icpp
----- GLCtrl ( GUI SSE2 GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (2 / 10)
BLITZ: GLPicking.cpp Win32GLCtrl.cpp X11GLCtrl.cpp GtkGLCtrl.cpp GLCtrl.cpp
----- CtrlCore ( GUI SSE2 GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (3 / 10)
BLITZ: SystemDraw.cpp Frame.cpp CtrlMt.cpp Ctrl.cpp CtrlChild.cpp CtrlPos.cpp CtrlDraw.cpp CtrlMouse.cpp CtrlKbd.cpp CtrlTimer.cpp CtrlClip.cpp LocalLoop.cpp TopWindow.cpp DrawWin32.cpp
DrawOpWin32.cpp DrawTextWin32.cpp ImageWin32.cpp MetaFile.cpp UtilWin32.cpp Win32Ctrl.cpp Win32Wnd.cpp Win32Clip.cpp Win32DnD.cpp Win32Proc.cpp TopWin32.cpp DHCtrl.cpp DrawX11.cpp Draw
OpX11.cpp DrawTextX11.cpp ImageX11.cpp UtilX11.cpp X11Ctrl.cpp X11Wnd.cpp X11Proc.cpp X11Clip.cpp X11DnD.cpp X11Top.cpp X11ImgClip.cpp X11App.cpp X11DHCtrl.cpp GtkDrawOp.cpp GtkDrawText
.cpp GtkDrawImage.cpp GdkImage.cpp GtkUtil.cpp GtkX11Util.cpp GtkCtrl.cpp GtkCapture.cpp GtkWnd.cpp GtkCreate.cpp GtkEvent.cpp GtkTop.cpp GtkClip.cpp GtkDnD.cpp GtkApp.cpp ParseRTF.cpp
EncodeRTF.cpp
CtrlCore.icpp
----- PdfDraw ( GUI SSE2 GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (4 / 10)
BLITZ: TTFStream.cpp TTFStruct.cpp TTFReader.cpp TTFSubset.cpp
PdfDraw.cpp
GLCtrl: 5 file(s) built in (0:00.01), 3 msecs / file, duration = 1615 msecs, parallelization 100%
PdfReport.icpp
----- Draw ( GUI SSE2 GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (5 / 10)
BLITZ: Font.cpp FontCR.cpp FontWin32.cpp FontFc.cpp Draw.cpp DrawText.cpp DrawData.cpp Drawing.cpp ImageAnyDraw.cpp DrawUtil.cpp DrawTextUtil.cpp Display.cpp Image.cpp ImageBlit.cpp Ras
terFormat.cpp RasterWrite.cpp Palette.cpp Raster.cpp RasterEncoder.cpp ImageOp.cpp ImageChOp.cpp ImageScale.cpp BiCubic.cpp RescaleFilter.cpp MakeCache.cpp DrawRasterData.cpp DDARasteri
zer.cpp SDrawClip.cpp SDrawPut.cpp SDrawText.cpp SDraw.cpp Cham.cpp SSettings.cpp
----- plugin/bmp ( GUI SSE2 GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (6 / 10)
BLITZ: Bmp.cpp BmpWrite.cpp Icon.cpp
BmpReg.icpp
----- RichText ( GUI SSE2 GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (7 / 10)
BLITZ: Object.cpp ParaData.cpp ParaType.cpp ParaPaint.cpp TxtData.cpp TxtPaint.cpp TxtOp.cpp Format.cpp TableCell.cpp TableLayout.cpp TablePaint.cpp TableData.cpp TextPaint.cpp TextStyl
e.cpp TextData.cpp TextTable.cpp EncodeQtf.cpp ParseQtf.cpp EncodeHTML.cpp Util.cpp
RichImage.icpp
----- Core ( GUI SSE2 GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (8 / 10)
BLITZ: Cpu.cpp Mt.cpp sheap.cpp String.cpp WString.cpp StrUtil.cpp Bom.cpp Path.cpp NetNode.cpp App.cpp Stream.cpp BlockStream.cpp FilterStream.cpp Log.cpp Debug.cpp Ini.cpp Util.cpp ma
thutil.cpp LocalProcess.cpp Vcont.cpp Hash.cpp Callback.cpp TimeDate.cpp Value.cpp ValueUtil.cpp Format.cpp Convert.cpp Color.cpp Gtypes.cpp t.cpp Lang.cpp LangInfo.cpp parser.cpp XML.c
pp Xmlize.cpp JSON.cpp Uuid.cpp Ptr.cpp z.cpp Topic.cpp CoWork.cpp MD5.cpp SHA1.cpp InetUtil.cpp Socket.cpp Http.cpp Dli.cpp Win32Util.cpp
PdfDraw: 6 file(s) built in (0:00.03), 5 msecs / file, duration = 3509 msecs, parallelization 100%
OL_Set.cpp
heaputil.cpp
lheap.cpp
plugin/bmp: 4 file(s) built in (0:00.01), 4 msecs / file, duration = 1529 msecs, parallelization 100%
heap.cpp
heapdbg.cpp
CharSet.cpp
Random.cpp
----- plugin/png ( GUI SSE2 GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (9 / 10)
pnglib.c
pngupp.cpp
pngreg.icpp
CtrlCore: 58 file(s) built in (0:00.04), 0 msecs / file, duration = 6922 msecs, parallelization 100%
----- ldc ( GUI SSE2 MAIN GCC DEBUG SHARED DEBUG_FULL BLITZ LINUX POSIX ) (10 / 10)
main.cpp
Draw: 33 file(s) built in (0:00.01), 0 msecs / file, duration = 5912 msecs, parallelization 100%
plugin/png: 3 file(s) built in (0:00.00), 0 msecs / file, duration = 1944 msecs, parallelization 100%
RichText: 21 file(s) built in (0:00.01), 0 msecs / file, duration = 5556 msecs, parallelization 100%
ldc: 1 file(s) built in (0:00.00), 1 msecs / file, duration = 1974 msecs, parallelization 100%
Core: 55 file(s) built in (0:00.00), 0 msecs / file, duration = 6852 msecs, parallelization 100%
CtrlLib: 56 file(s) built in (0:01.47), 26 msecs / file, duration = 11467 msecs, parallelization 100%
Linking...
/home/ek/.upp/_out/MyApps/ldc/GCC4.Debug.Debug_Full.Gui.Main.Shared.Sse2/main.o: In function `OpenGLExample::GLPaint()':
/home/ek/MyApps/ldc/main.cpp:63: undefined reference to `glutBitmapHelvetica12'
/home/ek/MyApps/ldc/main.cpp:66: undefined reference to `glutBitmapCharacter'
collect2: ld returned 1 exit status

There were errors. (0:12.14)

-----
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Hazudjak? Jo, hazudok: okosabb lettem lol. Ebbol nem latni azt, ami erdekelne, legalabbis en nem latom. Majd felrakom ma otthon ezt a trutyit es megnezem, mit lehet belole kihamozni ...

Érdekes. Ha nem hívom meg a RenderBitmapString(x,y,string); függvényt akkor lefordul. Ha berakom oda ahonnan használni szeretném akkor nem. pedig egy struct-on belül vannak.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Na felraktam es szorakoztam vele egy kicsit, ez az erdemeny:

Project->Package organizer->[jobb klikk] New Libraries...-> When LINUX : glut

Ennyi. Mashova (mint pl. Setup->Build methods) nem kell beirnod semmit. A GUI baromira nem intuitiv, es a build konfiguracio szerintem nagyon szar es hemzseg a hibalehetosegektol, de ez izles dolga, en biztos nem fogom hasznalni ezt semmilyen projektre. Az elso hiba, amit az ember valoszinuleg elkovet, en is megtettem, hogy nem uj libet fuz hozza, hanem uj linker opciot (New Link options), igy: -lglut. A hulyeje, ezzel pont azt csinalja, amit irtam tegnap: beteszi elore, igy aztan nem is lesz belole linkeles. Egyebkent tegnap pont azt szerettem volna latni, hogyan hivodik a gcc, erre ez a megoldas: Setup->Be verbose

Igy nez ki a lecsupaszitott output, ha rosszul csinalod:
g++ -o ".../foo" -ggdb -L"/usr/X11R6/lib" -Wl,-O,2 -lglut ".../init.o" ".../main.o" -Wl,--start-group -Wl,--end-group

Es igy ha ugy, jol:
g++ -o ".../foo" -ggdb -L"/usr/X11R6/lib" -Wl,-O,2 ".../init.o" ".../main.o" -Wl,--start-group -lglut -Wl,--end-group

Na ennyi, es most torlom a fenebe :)

Nagyon köszönöm. Igazad van. Működik. Az igazság az, hogy én gyakorlatilag tisztán matematikára szoktam használni, a legtöbb eddig amit műveltem vele (a matematikán kívül), hogy képeket jelenítetem meg, mert a hangsúly nem ezen van az én munkámban, néha kiteszek egy progressbart, hogy hol tart a számolás de enyi. Valamint találtam hozzá egy demo-t amiben le volt írva, hogy hogyan kell multi-threadet készíteni, és nagyon könnyű volt. Programozói oldalról kicsi programokat írok vele (ami gyakorta napokig fut), de én is ütköztem már bele korlátaiba. Egyébként kb ezért döntöttem e mellet az ide mellett anó, mert nagyon kicsi primitív, és viszonlyag könnyen hordozható kódot kapok, ami pedig nekem kellett azt tudta. Mostanság találták ki a cégben hogy írkájak ilyen olyan apró programokat, és emiatt kezdem látni a korlátait. De ha ajánlasz egy (amolyan fizikusnak való) ide-t, és hatékonyabban használható örömmel megtanulom, mert jópár bosszantó dolgot én is tapasztaltam már ezzel.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

QtCreator. Nem csak Qt-hez jo.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Valóban nem csak ahhoz jó, viszont a qmake mégiscsak qt dependenciát hoz (igaz csak fordítási időben).
Cserébe viszont érthető kezdő szinten.

Vagy még a cmake-et is viszi a QtCreator, de azt kezdőnek (se :)) ajánlanám.

Alternatíva lehet az Eclipse CDT-vel, ott van makefile project, és 2-3 éve már elég jó C/C++ támogatással rendelkezett, gondolom azóta nem romlott...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

En a CMake-t igenis ajanlom kezdonek, nehany opcioval lehet komplett buildsystemet gyartani. Nem kell profinak lenni hozza.

Az Eclipse egy nagy bohom allat, es biztos jo a C/C++ supportja, de ugyanazert nem ajanlom, mint a NetBeans-t: felesleges. Egy buta, konnyu IDE volt a request, ezt a QtCreator teljesiti, talan meg jobban is, mint kellene.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Np, kivetelesen volt idom. IDE-t en nem ajanlanek, mert ez tenyleg izles kerdese, legalabbis addig, amig egyedul piszkalod a projektet. Probalj ki nehanyat es keresd meg azt, amelyik kezedre all. Fontos viszont, hogy ne valami egzotikus, atlathatalan build systemet hasznaljon, mert akkor egyreszt az adott kornyezethez beklyozod magad, masreszt, ha segitsegre van szukseged, kicsit tovabb kell varnod ;) En egyebkent, ha nincs megkotes a projektben, leginkabb csak editort (vim) + shellt hasznalok, alapvetoen tortenelmi okokbol es ez meg veletlenul sem jelenti az egyetlen, igaz utat. Persze ennek elofeltetele a normalis build system, ami lehetove teszi, hogy mindenki a kedvenc editoraval kuzdhessen :)

Ha GUI-t is irsz, megha egyszerut is, en a Qt hasznalatat javaslom. Jol dokumentalt, az alapok gyorsan megtanulhatok, nagy felhasznalobazisa van, kovetkezeskepp: konnyen jutsz segitseghez is es hordozhato (piackepes) tudasra teszel szert. Adja magat, hogy Qt-s projektekhez QtCreator dukal, de talalsz tobb IDE-t is, ami jo tamogatast nyujt Qt-s fejleszteshez, de tulajdonkeppen eleg egy editor is. A Qt elonye, hogy pl. Pythonnal is jol hasznalhato, ami egy fizikus szamara is vonzo lehet ;) Egyebkent, mint azt mar irtak, a QtCreator nem kenyszerit a Qt hasznalatara, igy valoszinuleg megeri, hogy vess ra egy pillantast.

De visszaterve az Ultimate++ oruletre. En nem tudom milyen elmebeteg otlet vezerel valakit, hogy pl. a build opciok bizonyos reszet, a projekt beallitasoktol szeparaltan, a mindenkori felhasznalo home konvtaraban tarolja, egy rejtett konyvtarban. Ennek az a nyilvanvalo kovetkezmenye, ha a projekten tobben is dolgoznak, a build kimenet nem lesz eppen determinisztikus. Masik ami remek, hogy a beallitasok szet vannak szorva, azok is, amelyek valtoztatasa utan tulajdonkeppen egy rebuild-re van szukseg. Ezt viszont az IDE meg veletlenul sem koveti nyomon, igy ha a fejleszto nem eleg ovatos, akkor a kimenet megint csak elterhet a varttol. Elvileg lehet a projektet exportalni, Makefile-t is kellene, hogy generaljon ekkor, de nalam ez elhasalt, valoszinuleg a 3 fajlbol allo, osszesen 10 soros megaprojektem volt tul nagy falat neki :) Mindegy, spongyat ra, aki akarja, hasznalja!

Minek csinalsz ilyen nagy projekteket? A helloworld neked mar nem is eleg? :D

Ugyanitt:

- Hogy hivjak a kartyapartnert angolul?
- Ulti mate.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

_En_ osszeutnek egy Makefile-t ehhez az egeszhez mar elorebb jarnank, mint itt szivni ezzel az IDE-vel... tenyleg, biztos fantasztikusan jo cucc, de hibakeresni baromi nehez...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

De ellenorizd le az gl(U).so-kat is.
Szerintem, ha ezeket beirod, mindjart elorebb jarnank a kimenetek ismereteben.
ld -lglut
ld -lGL
ld -lGLU

Ha megvannak, akkor az ultimate++ allit ossze valamit hibasan.

Én lefordítanám clang-gal is, hátha az olvashatóbb hibaüzenetet dob.

A hibauzenet egyertelmu, nincs rajta mit ragozni ...

Az nem lehet, hogy a GLPaint függvényed lezáró kapcsoszárójele rossz helyen van? (a 26. sorban)
Nested function úgy tudom nincs C-ben.

--
"Az a szóbeszéd járja Amerikában, hogy két intelligens faj létezik a földön: emberek és magyarok." by Isaac Asimov

A GCC kiterjesztésként támogatja, egyébként tényleg nincs.

Hűha. Kösz, ezt nem is tudtam.

--
"Az a szóbeszéd járja Amerikában, hogy két intelligens faj létezik a földön: emberek és magyarok." by Isaac Asimov

Nem baj, ezután se tudd, mivel a GCC-n kívül senki sem támogatja C-ben.