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

dinamičko linkanje Ogre3D

[es] :: 3D programiranje :: dinamičko linkanje Ogre3D
(Zaključana tema (lock), by tosa)
Strane: 1 2

[ Pregleda: 7839 | Odgovora: 30 ] > FB > Twit

Postavi temu

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mrzli777
Hrvatska

Član broj: 50641
Poruke: 18
*.adsl.net.t-com.hr.



Profil

icon dinamičko linkanje Ogre3D15.07.2007. u 11:29 - pre 209 meseci
Pozdrav.

Imam jedno pitanje vezano za linkanje biblioteka ogre3d. Već sam ga bio postavio na ogre-ovom forumu pred par dana, ali nisam dobio odgovor, pa se nadam da ću ovdje imati malo više sreće.

Zanima me što se točno podrazumijeva pod dinamimičkim linkanjem. Da li to automatski znači da u projektu ne smijem imati u projekt uključen niti jedan statički .lib iz skupa ogre-ovih biblioteka.

Npr, da li ogre tutoriali na wikipediji statički ili dinamički linkani? U tim primjerima u projekt se uključuje npr OgraMain.lib, ali isto tako su potrebni dll-ovi za pokretanje programa.

Bio bih zahvalan ako bi mi neko samo okvirno u par koraka objasnio najjednostavniji način kako se izvodi takvo dinamičko linkanje za ogre-ov primjer (u smislu da mogu koristiti funkcije ogre-a, a da moj kod ne spada pod LPGL) ili da me uputi na primjer ili objašnjenje toga.

Hvala.

 
0

PavleBgd
Pavle Joksimovic
Beograd

Član broj: 25177
Poruke: 112
*.15.eunet.yu.



Profil

icon Re: dinamičko linkanje Ogre3D15.07.2007. u 15:42 - pre 209 meseci
Primeri koji idu uz Ogre koriste biblioteke OgreMain.dll ili OgreMain_d.dll ukoliko se koriste release ili debug verzije projekta.
Možeš da pokupiš kompletan Ogre source (source package iz download sekcije) i da kreiraš projekat koji će statički vezati sve potrebne biblioteke u jedan izvršni fajl, ovo mi prvo pada na pamet.
Za Ogre3d forum je normalno da se čeka dugo vremena na odgovor, jer za bilo koje složenije pitanje je potrebno i vremena i ekspertize, ukoliko pitanje nije u krajnju ruku banalno.
Pozdrav

[Ovu poruku je menjao PavleBgd dana 15.07.2007. u 17:06 GMT+1]
 
0

franticnick

Član broj: 19656
Poruke: 372
*.cable.casema.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: dinamičko linkanje Ogre3D15.07.2007. u 16:10 - pre 209 meseci
Pod Ogre-om se uglavnom podrazumeva OgreMain.dll. Na koje si biblioteke is "skupa" mislio? Ako mislis na 3rd party lib-ove, onda treba procitati njihove licence (koje su uglavnom LGPL takodje).

Zasto imas potrebu da linkujes Ogre3D staticki?

Na sajtu stoji sledece:

Ogre's default license is the GNU Lesser Public License (LGPL). This basically means that you can get the full source code for nothing, nada, zip. There is such a thing as a free lunch.

Under the LGPL you may use Ogre for any purpose you wish, as long as you:

1. Release any modifications to the OGRE source back to the community
2. Pass on the source to Ogre with all the copyrights intact, or link back to a place where the source code can be obtained (e.g. this site)
3. Make it clear where you have customised it.

The above is a precis, please do read the full license agreement.
There are a few specific details to point out:

1. When OGRE is dynamically linked (the default), anything you use it in is not a derived work and thus you can license your own software under any license you choose; the LGPL does not 'infect' your software.
2. When OGRE is statically linked, your work becomes a derived work of OGRE and is covered by the LGPL too. You must either release your source, or include linkable object files of your work if you do this
3. The license mentions 'inlining' as potentially making the software using it a derived work; however this is mostly an issue for libraries which mostly comprise headers, like template libraries. Inlining in OGRE is entirely for performance and is a small part of the whole, and therefore any inlining of OGRE headers does not constitute a derived work (so point 1 still applies).

A common question is 'can I create commercial applications using OGRE under the LGPL'? The answer is an emphatic yes, provided you adhere to the license conditions, summarised above. Whilst we do make an alternative license available to those who specifically need it, it is not the case that you need this alternative license for commercial work. There are plenty of commercial applications that have used OGRE under the LGPL.
 
0

mrzli777
Hrvatska

Član broj: 50641
Poruke: 18
*.adsl.net.t-com.hr.



Profil

icon Re: dinamičko linkanje Ogre3D16.07.2007. u 19:02 - pre 209 meseci
Hmm, možda je moje pitanje malo nejasno postavljeno (a možda i malo preglupo), pa ću ga pokušati pojasniti.

Citat:
Primeri koji idu uz Ogre koriste biblioteke OgreMain.dll ili OgreMain_d.dll ukoliko se koriste release ili debug verzije projekta.


To mi je jasno. Ali isto tako npr. neki primjer ima uključen recimo OgreMain_d.lib i OIS_d.lib, a to nisu dll, nego statički lib. Nije mi bitno kako to funkcionira, nego da li se takav link smatra dinamičkim ili statičkim.
Konkretnije, recimo da pišem aplikaciju koja koristi funkcije iz ogre-a. Da bi ju skompajlirao moram u projektu uključit OgreMain_d.lib (ili bez _d za runtime nije bitno) ili ću dobiti link error. I isto tako da bi dobiveni .exe te moje aplikacije pokrenuo, treba mi naravno OgreMain_d.dll. Eh, sada me zanima, da li je smatra da ta moja aplicacija ima statički ili dinamički link na ogre (jer koristi i OgreMain_d.lib i OgreMain_d.dll), odnosno, da li bi taj moj source linkan na ovako opisan način automatski bio 'zagađen' sa LPGL.

Citat:
Možeš da pokupiš kompletan Ogre source (source package iz download sekcije) i da kreiraš projekat koji će statički vezati sve potrebne biblioteke u jedan izvršni fajl, ovo mi prvo pada na pamet.


Ne želim statički link napravit, nego me zanima baš dinamičko linkanje (mislim da sam to u poruci napisao). Statičko linkanje me zanima samo kao primjer što ne napraviti.


Citat:
Pod Ogre-om se uglavnom podrazumeva OgreMain.dll. Na koje si biblioteke is "skupa" mislio? Ako mislis na 3rd party lib-ove, onda treba procitati njihove licence (koje su uglavnom LGPL takodje).


Nije bitno, kao što kažeš većinom su LGPL (ili manje restriktivne). Inače, u onom kontekstu sam mislio na .lib fajlove kao OgreMain.lib, a ne .dll.

Citat:
Zasto imas potrebu da linkujes Ogre3D staticki?


Nemam potrebu linkat ga statički. Želim ga linkati dinamički, i bit siguran nisam krivo shvatio što je tu statički a što dinamički (zbog licence). To je možda malo nejasno bilo u mom pitanju. Zapravo, najjednostavnije rečeno, želim da mi neko 'prstom pokaže' neki program (sa sourcom) i kaže: Gle, ako napraviš link kao što je napravljen u ovom programu, tvoj kod spada pod točku 1. iz onog sažetka licence (1. When OGRE is dynamically linked (the default), anything you use it in is not a derived work and thus you can license your own software under any license you choose; the LGPL does not 'infect' your software). Ili: Moraš napravit linkanje tako i tako (npr. nesmiješ u projekt nikakav OgreMain.lib uključivat, sve se mora sa funkcijom ::LoadLibray("OgreMain.dll"); obavljat ili kako već) da se tvoj program spada pod tu točku 1.
Dakle, što na što se točno misli (konkretno bi se u mom projektu i sourcu što se trebalo napravit) da se to smatra "When OGRE is dynamically linked (the default), ...".

Sad sam potrošio puno teksta za zapravo jednostavno pitanje, ali radi jasnoće pokušati ga još jednom ponoviti (objašnjavanje mi nije jedna od jačih strana, moje isprike :) ). Dakle, ja nisam 100% siguran na što se misli kad se kaže dinamičko linkanje ogre-a (defaultno) pod tom točkom 1. i zanima me kako se točno radi (najbolje bih znao kad bih vidio neki jednostavni visual studio projekt (aplikaciju) koji na taj način linka ogre).
 
0

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
218.1.28.*

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: dinamičko linkanje Ogre3D17.07.2007. u 02:25 - pre 209 meseci
Postoje implicitno i eksplicitno dinamičko linkovanje. Kada kreiraš dll, pored njega se generiše i .lib
fajl. Taj .lib ako dodaš u svoj projekat, .dll koji je kreiran će se automatski učitavati zajedno sa izvršnim
fajlom. Druga opcija je da "ručno" učitaš dll i onda nađeš adrese funkcija i pozivaš ih odatle.
Obe ove varijante su dinamičko linkovanje, bez obzira što u prvoj koristiš .lib fajl.
Statičko linkovanje je povezivanje sa .lib fajlom koji se generiše samostalno i kada linkuješ aplikaciju
sa tim, nemaš potrebu za dll fajlom zato što se već svi simboli nalaze tu.
Ne znam koliko sam jasan, pogledaj MSDN za više informacija...
 
0

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: dinamičko linkanje Ogre3D17.07.2007. u 11:52 - pre 209 meseci
Citat:
mrzli777:Konkretnije, recimo da pišem aplikaciju koja koristi funkcije iz ogre-a. Da bi ju skompajlirao moram u projektu uključit OgreMain_d.lib (ili bez _d za runtime nije bitno) ili ću dobiti link error. I isto tako da bi dobiveni .exe te moje aplikacije pokrenuo, treba mi naravno OgreMain_d.dll. Eh, sada me zanima, da li je smatra da ta moja aplicacija ima statički ili dinamički link na ogre (jer koristi i OgreMain_d.lib i OgreMain_d.dll), odnosno, da li bi taj moj source linkan na ovako opisan način automatski bio 'zagađen' sa LPGL.


Upravo kako ti je Tosa objasnio. Posto kazes da ti treba i .lib i .dll onda je to ("implicitno") dinamicko linkovanje te je tvoja aplikacija cista od LGPL-a.

Ako nadjem vremena, poslacu ti neke primere.
 
0

mrzli777
Hrvatska

Član broj: 50641
Poruke: 18
*.adsl.net.t-com.hr.



Profil

icon Re: dinamičko linkanje Ogre3D17.07.2007. u 18:01 - pre 209 meseci
Mislim da to odgovara na moje pitanje, hvala.

Imam samo još jedno dodatno pitanjce, nisam na msdn-u uspio naći odgovor.
Da li mogu napravit nasljeđivanje klasa iz .dll-a u svojoj aplikaciji ako napravim implicitno dinamičko linkanje?
 
0

Filip Strugar
Filip Strugar
UK

Član broj: 9871
Poruke: 383
..nge81-152.btcentralplus.com.



+1 Profil

icon Re: dinamičko linkanje Ogre3D17.07.2007. u 20:35 - pre 209 meseci
Citat:
mrzli777: Mislim da to odgovara na moje pitanje, hvala.

Imam samo još jedno dodatno pitanjce, nisam na msdn-u uspio naći odgovor.
Da li mogu napravit nasljeđivanje klasa iz .dll-a u svojoj aplikaciji ako napravim implicitno dinamičko linkanje?

U slučaju Visual Studija, ako si za kompajliranje dll sa baznom klasom koristio dllexport/dllimport atribut na klasi, onda možeš da je naslediš u svojoj aplikaciji koja se implicitno linkuje na isti. Pogledaj "Using dllimport and dllexport in C++ Classes" na MSDN-u.
Verujem da dll i tvoja aplikacija moraju biti kompajlirani u istoj ili bliskoj generaciji visual studija.
 
0

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: dinamičko linkanje Ogre3D18.07.2007. u 00:09 - pre 209 meseci
Citat:
2. When OGRE is statically linked, your work becomes a derived work of OGRE and is covered by the LGPL too. You must either release your source, or include linkable object files of your work if you do this


Ovo je teshki BS!

LGPL je i napravljen sa razlogom da se olabave ("lesser") GPL zahtevi, i dozvoli statichko linkovanje ne-LGPL softvera ukoliko taj softver koji koristi lib nije "derivative". A igra koja linkuje Ogre i koristi ga kao takvog bez menjanja nema pravog razloga da se nazove "derivative"-om.

LGPL:
Citat:
A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.


Ovom klauzulom gore su potpuno ponishtili bilo kakav razlog za korishcenje LGPL-a, mogli su jednostavno da objave taj OGRE pod GPL-om i ne bi bilo nikakve razlike.
 
0

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
67.151.201.*

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: dinamičko linkanje Ogre3D18.07.2007. u 01:04 - pre 209 meseci
Citat:
A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

Essentially, it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.

http://en.wikipedia.org/wiki/LGPL#Differences_from_the_GPL

 
0

franticnick

Član broj: 19656
Poruke: 372
*.cable.casema.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: dinamičko linkanje Ogre3D18.07.2007. u 21:17 - pre 209 meseci
I sa Ogre3D-ovog foruma na ovu temu:

http://www.ogre3d.org/phpBB2/v...193664e1d3d7c4af509e6f4e2718c6

A sam Sinbad (Steve Streeting, autor Ogre3D-a) kaze:

Citat:

Just to put an official stamp on this, we cover this question on our licensing page:

--------
If you choose to change this, and make OGRE statically linked (we don't support this, but it's possible), your work becomes a derived work of OGRE and is covered by the LGPL too. You must either release your source, or include linkable object files of your work if you do this, so it's not recommended.
--------


But as others have said, most people don't want to do this. Sticking to dynamic linking under the LGPL license is simpler. The spirit of the LGPL is that a user of the software should be able to get a new compatible copy of OGRE and re-link it if they want, which is the reason for this distinction between dynamic and static linking and the actions you're supposed to take if you statically link.


Dakle, otprilike isto sto je bkaradzic citirao (boldovao).

Ali bez obzira na sve, ostaje nejasno zasto bi neko toliko ocajnicki zeleo da umesto dinamicki linkuje staticki? Mislim, stvar je prosta. Ako je cilj komercijalna aplikacija koja koristi Ogre, onda treba linkovati dinamicki, u suprotnom moze sve ostalo.


[Ovu poruku je menjao franticnick dana 18.07.2007. u 22:35 GMT+1]
 
0

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
218.1.28.*

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: dinamičko linkanje Ogre3D19.07.2007. u 02:54 - pre 209 meseci
Citat:
franticnick: Ali bez obzira na sve, ostaje nejasno zasto bi neko toliko ocajnicki zeleo da umesto dinamicki linkuje staticki? Mislim, stvar je prosta. Ako je cilj komercijalna aplikacija koja koristi Ogre, onda treba linkovati dinamicki, u suprotnom moze sve ostalo.

Licenca je takva da za komercijalne projekte nemaš prava da menjaš kod,
što je neupotrebljivo, samim tim te prinuđuje da zapravo kupiš ogre.
Pa ko nasedne, nasedne...
 
0

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: dinamičko linkanje Ogre3D19.07.2007. u 10:30 - pre 209 meseci
Citat:
tosa: Licenca je takva da za komercijalne projekte nemaš prava da menjaš kod,
što je neupotrebljivo, samim tim te prinuđuje da zapravo kupiš ogre.
Pa ko nasedne, nasedne...


Mozes ga menjati drasticno preko sistema pluginova. Na primer, mozes da napises svoj scene manager a da ne taknes Ogre3D code.

Ideja nije da neko treba da nasedne i da kupi Ogre, nego da se intelektualna svojina zastiti koliko je moguce a da u isto vreme licenca ne odbija korisnike. LGPL mu dodje kao neki dobar balans.

Siguran sam da je malo ko spreman (lud) da spuca godine kodirajuci da bi se na kraju odrekao svega i podelio po netu. Na taj nacin bi male Perice bile u mogucnosti da za par sati/dana prepakuju sve i prodaju kao svoj "revolucionarni...", "prvi srpski..." ... i sl. engine. :)
 
0

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
..w.sh.dynamic.163data.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: dinamičko linkanje Ogre3D19.07.2007. u 12:21 - pre 209 meseci
Plugin nije dovoljan za potrebe ozbiljnog projekta...
...za manje može biti ok, ali to je i jedino što jeste ok sa ogre-om.

Pristrasni komentar:

Ako ikada AAA igra bude koristila Ogre, ja ću sebi pucati u noge :)
Tvrdim da je autor Ogre-a "attention whore".
 
0

Filip Strugar
Filip Strugar
UK

Član broj: 9871
Poruke: 383
*.demon.co.uk.



+1 Profil

icon Re: dinamičko linkanje Ogre3D19.07.2007. u 12:48 - pre 209 meseci
Citat:
tosa: Ako ikada AAA igra bude koristila Ogre, ja ću sebi pucati u noge :)
Tvrdim da je autor Ogre-a "attention whore".

Shto bre, shta je radio/radi? :))
 
0

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: dinamičko linkanje Ogre3D19.07.2007. u 13:34 - pre 209 meseci
Citat:
tosa: Plugin nije dovoljan za potrebe ozbiljnog projekta...
...za manje može biti ok, ali to je i jedino što jeste ok sa ogre-om.


Pitanje je kakva je situacija kod komercijalnih engine-a. Da li onaj koji kupuje, zeli/zna da menja source code? U tom slucaju bolje je pisati sopstveni engine nego se zezati sa (samo) par stotina hiljada linja tudjeg source code-a.

Mada u krajnjem slucaju zasto i ne menjati source Ogre-a ako potrebe nalazu? Samo treba biti spreman publicovati promene i nema problema.

Citat:

Pristrasni komentar:

Ako ikada AAA igra bude koristila Ogre, ja ću sebi pucati u noge :)
Tvrdim da je autor Ogre-a "attention whore".


This is good :)
 
0

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.demon.co.uk.



+4 Profil

icon Re: dinamičko linkanje Ogre3D19.07.2007. u 17:32 - pre 209 meseci
Citat:
Pitanje je kakva je situacija kod komercijalnih engine-a. Da li onaj koji kupuje, zeli/zna da menja source code?

100% da

Citat:
U tom slucaju bolje je pisati sopstveni engine nego se zezati sa (samo) par stotina hiljada linja tudjeg source code-a.

100% ne


Citat:
Mada u krajnjem slucaju zasto i ne menjati source Ogre-a ako potrebe nalazu? Samo treba biti spreman publicovati promene i nema problema.

Ako tebi i tvom izdavachu nije problem objaviti kompletan sors igre onda samo napred.
 
0

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: dinamičko linkanje Ogre3D19.07.2007. u 18:17 - pre 209 meseci
Citat:
NastyBoy: Ako tebi i tvom izdavachu nije problem objaviti kompletan sors igre onda samo napred.


Nismo se razumeli. Mislio sam na objavljivanje soursa izmenjenog Ogre3D-a, ne igre.

Daklem, izmenis Ogre3D kako ti odgovara i objavis izmenu. Posto opet imas mogucnost da dinamicki linkujes to i uradis i sors igre ostaje samo tvoj. Jednostavno je.
 
0

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: dinamičko linkanje Ogre3D20.07.2007. u 07:53 - pre 209 meseci
Jednostavno, u teoriji. U praksi nema preterano smisla.

Moja poenta, da ne razvlachim prichu preterano, je da u komercijalnom game-dev okruzhenju GPL softver, kakav je danas, nije vredan truda. Kako zbog mogucih zakonskih implikacija, tako i zbog opshteg nekvaliteta istog. Uvek sam smatrao GPL licencu krajnje licemernom, Ogre je samo josh jedan pokazatelj istog.
 
0

franticnick

Član broj: 19656
Poruke: 372
*.nedstat.nl.

Sajt: www.franticnick.com


+30 Profil

icon Re: dinamičko linkanje Ogre3D20.07.2007. u 12:06 - pre 209 meseci
Citat:
NastyBoy: Jednostavno, u teoriji. U praksi nema preterano smisla.


Well, za komapnije koje su uradile/rade sledece igre:

http://www.creative-patterns.c...rique27&lang=en&Game=1 ( Building World - PC )
http://www.ankh-game.com/ (Ankh 1 & 2)
http://www.hca.eu/ (The Ugly Prince Duckling)
http://www.jackkeane.com/index.php?id=7&L=2 (Jack Keane)
http://www.pacificstorm.net/en/index.php (Pacific Storm)
http://www.57-th.com/ (There is only war)
http://www.hugo-net.com/ (Agent Hugo)

verovatno ima itekako smisla.

Citat:

Moja poenta, da ne razvlachim prichu preterano, je da u komercijalnom game-dev okruzhenju GPL softver, kakav je danas, nije vredan truda. Kako zbog mogucih zakonskih implikacija, tako i zbog opshteg nekvaliteta istog. Uvek sam smatrao GPL licencu krajnje licemernom, Ogre je samo josh jedan pokazatelj istog.


Ogre3d nije pod GPL licencom, nego pod LGPL. Razlika je drasticna!

Inace bilo bi jako korisno za ovu diskusiju ako bi ubuduce iznosio vise validnih informacija/linkova (whatever) koje potrkrepljuju tvoje tvrdnje.

Niko ovde ne tvrdi da je Ogre3D silver bullet za razvoj AAA igara ili sta ti ja znam. Naravno da ima i boljih i losijih engine od Ogre-a, ali neozbiljno je kritikovati Ogre samo na osnovu toga sto je open source. To bi trebala da bude prednost a ne mana. Licno sam imao prilike da vidim sourseve od nekih komercijlanih engine-a i mogu samo reci da su blagi uzas u poredjenju kako Ogre izgleda.

[Ovu poruku je menjao franticnick dana 20.07.2007. u 13:17 GMT+1]
 
0

[es] :: 3D programiranje :: dinamičko linkanje Ogre3D
(Zaključana tema (lock), by tosa)
Strane: 1 2

[ Pregleda: 7839 | Odgovora: 30 ] > FB > Twit

Postavi temu

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