Kompilácia končí s chybou
/usr/bin/ld: bin_linux/src/3D/OpenGLCanvas.o: undefined reference to symbol 'glLightfv' //usr/lib/libGL.so.1: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [genericcam] Error 1
Generic CAM nájdete tu
To sa stáva pri projekte čo je prístupný len cez git že bude chcieť najnovšie knižnice. Skús tú chybu reprodukovať na gentoo ktoré by malo mať novší opengl stack ako debian.
Na hlavnom desktope mám stále Debian, Gentoo používam tiež a je pravda, že tam ide skoro všetko, len tie hodiny kompilácií mi vadia. Teraz skúšam Sabayon, je tam veľa balíčkov skompilovaných a pri tom dá používať aj ako Gentoo. Proste som za roky s Debianom spohodlnel, apt-get install a mám to hotové.
Ten program ešte nemá balíček, takže argument s dlhou kompiláciou neobstojí. Mimochodom, v dnešnej dobe a s výkonom desktopov ktoré nemajú 10 rokov to už dávno niesú hodiny kompilácie. Holt, debian je stable za cenu starých knižníc.
Skôr som myslel že na čo šiahnem v Gentoo to sa musí kompilovať, ale je to sympatické distro. Ako som písal odkedy mám CNC frézku som na tom s časom úplne zle a ako dobrú alternatívu vidím v Sabayon, alebo sa ti na ňom niečo nepáči? Mne binárne balíčky dosť šetria čas, hlavne keď stále niečo skúšam.
A kompilovať sa to dokáže aj popri inej činnosti, štandardne má emerge zníženú prioritu aby nebrzdil. Ak by binárne balíčky šetrili čas, tak by táto téma nevznikla. Predsa len sa pýtaš na skompilovanie zo zdrojáku a nie na inštaláciu hotového balíčka.
Projekt potrebuje OpenGL kniznicu ale nelinkuje ju, doteraz fungoval preto lebo je snou zlinkovana libGLU, to uz ale od istej verzie gcc nefunguje.
libglu mám nainštalovanú, možno je zastaralá.
A ten Makefile si neskusal opravit?
Oprava ma posunula o krok ďalej, takže mám nový problém
wxWidgets je nainstalovane? "wx-config --libs gl,core,base,xml" funguje?
Jj to som mal, ale začalo to fungovať až po nainštalovaní balíčku libalien-wxwidgets-perl.
Tak som sa dostal k ďalšej chybe
Kurňa čo je llua?Lua je programovací jazyk.
Priateľu to viem, ale kurňa prečo llua, zdôrazňujem to ll.
Pretoze konvencia, -l* expanduje na lib*.
1. Nainstalovat LUA.
2. Upravit Makefile
pretoze:
a) pravdepodone nebude sediet verzia.
b) -llua5.1 bude hladat kniznicu liblua5.1.[so, a], ale konvencia je lib[meno].so.[verzia] napr. liblua.so.5.1.5
Dík, keď budem doma, tak to vyskúšam.
Zaujímavé dnes zas tá chyba čo predtým, make som sa pokúšal upraviť. Náhrada za llua bez verzie vyhodí chybu. Takže som číslo verzie llua vrátil napäť a som zas pri chybe o krok naspäť, už som skúšal viacero vecí, ale asi to bude vo verzií vxwidgets.
Ze by si medzi casom upgradol wxWidgets? Skus zmazat adresar /home/mario/Programy/genericcam-git/bin_linux, ten Makefile totiz nevidi zavislosti na systemovych headroch.
Ohladne LUA tazko radit ked nepises aku chybu to vracia.
Zmazal som ten priečinok a chyba sa zmenila na
Po tomto úkone llua s verziou, alebo bez nej hádže rovnakú chybu.Do suboru src/3D/AffineTransformMatrix.cpp treba na riadok 270 za wxASSERT(T11!=0) pridat ";".
Zabralo a sme na ďalšej chybe :)
Idem chrápať, tak až máš chuť zajtra pokračujeme.Nie som lingvista ale vyzera to ako prítomny priebehovy cas, teda problem bude asi v tom ze ten dej este stale prebieha. Ako heslo do dalsieho levelu by som pouzil nieco ako:
Moc ti ďakujem, skompilované. Dík za trpezlivosť.
Neni zac.
Ešte prikladám výpis s wx-config