Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro 5] statyczne linkowanie

Ostatnio zmodyfikowano 2013-07-29 16:44
Autor Wiadomość
aaadam
Temat założony przez niniejszego użytkownika
[Allegro 5] statyczne linkowanie
» 2013-07-28 10:33:45
Witem, że były tematy tego typu ale nie mogę sobie poradzić tutaj niby wszystko jest opisane ale nie chce mi działać http://wiki.allegro.cc/index.php?title=Windows%2C_Visual_Studio_2010_and_Allegro_5
1.dodałem na początku pliku main.c  #define ALLEGRO_STATICLINK
2. tutaj Configuration Properties->Linker->Input:dodałem te biblioteki

allegro-5.0.8-monolith-md-debug.lib
dumb-0.9.3-static-mt.lib
freetype-2.4.8-static-mt.lib
libFLAC-1.2.1-static-mt.lib
libogg-1.2.1-static-mt.lib
libvorbis-1.3.2-static-mt.lib
libvorbisfile-1.3.2-static-mt.lib
openal-1.14-static-mt.lib
zlib-1.2.5-static-mt.lib
winmm.lib
opengl32.lib
gdiplus.lib
psapi.lib
shlwapi.lib
3.On the Configuration Properties->Linker->Input dialog box, leave the "inherit from parent or project defaults" option checked.  tego nie mam o opcjach
4.In Configuration Properties->C/C++->Code Generation->Runtime Library, set that to "/MT" (or "/MTd" for the Debug configuration). to zrobiłem
5.In Configuration Properties->C/C++->Preprocessor->Preprocessor Definitions, add ALLEGRO_STATICLINK to the list.  to też
potem stworzyłem nowy katalog skopiowałem pliki z katalogu relase + sprajty dodatkowo skopiowałem 4 dllki: allegro-5.0.8-monolith-md.dll,msvcr100.dll,msvcp100d.dll,msvcp100.dll
niestety nie działa mi dalej proszę o pomoc.A mam oryginalne vs 2010 premium
P-88923
pekfos
» 2013-07-28 12:36:55
niestety nie działa
Czyli?
P-88931
aaadam
Temat założony przez niniejszego użytkownika
» 2013-07-28 17:43:59
wyskakuje okienko :
program gra2.exe przestał działać
natomiast jak uruchomie w visualu jako relase to dziala
P-88955
jankowalski25
» 2013-07-29 09:20:33
Spróbuj użyć debuggera (i wklej wynik jego działania).
P-88977
Admixior
» 2013-07-29 10:23:19
Problemem może być wszystko niżej przedstawiam moje widzimisie
Zrobiłeś punkt 4 ale (być może) źle. Gdyż iż go nie zrozumiałeś. Miałeś ustawić MT dla release i MTd dla debug.
OK. może i tak masz, Ale (być może) nie zauważasz że np. w większości bibliotek masz MT (zauważ to coś po pauzie) wyklucza to użycie opcji MTd więc debug nie działa. Dalej jeszcze nie wiem jak to koliduje z allegro gdyż ono ma MDd (MD dla debugera).

Po prostu musisz uważać które libki linkujesz.


Czym się różni MT/MTd/MD/MDd:
MT (Multi-threaded) -> biblioteki statycznie linkowane (to jest: nigdy ci nie wyjdzie (chyba że masz system antyk, że brakuje jakiejś biblioteki dll (w szczególności "msvcr100.dll,msvcp100d.dll,msvcp100.dll" gdyby nie było na innym kompie. (nie musisz ich ciągnąć za exe-kiem)
Wada: plik będzie więcej ważył)

MTd (Multi-threaded debug) -> To co wyżej tylko ułatwia prace debuggerowi(i debugerowaczowi)

MD (Multi-threaded DLL)-> biblioteki dynamicznie linkowane) potrzebujesz zainstalowanego na kompie "MSVC Redistributable Package" (normalnie się instaluje przy visualu, ale na innych kompach może nie być)
Zaleta exe-k Waży mniej

MDd (Multi-threaded DLL debug)-> To co wyżej tylko ułatwia prace debuggerowi(i debugerowaczowi)

Dodam że jeżeli allegro jest linkowane dynamicznie to wydaje mi się że nie powinno być problemów (ale tego nie jestem pewien), ale linkowanie statyczne MTd(w linkerze) i MT(libek) wg. mnie powinno walić błędy linkera.


//edit: czytam jeszcze raz i widze że ustawiłeś "ALLEGRO_STATICLINK " pomimo że używasz wersji md allegro. Coś mi tu nie gra.

//edit2: skoro taszczysz za exekiem dllki to co to mi za statyczne linkowanie:
"sprajty dodatkowo skopiowałem 4 dllki: allegro-5.0.8-monolith-md.dll,msvcr100.dll,msvcp100d.dll,msvcp100.dll"
P-88978
Gabes
» 2013-07-29 16:44:22
W tym temacie miałeś wszystko podane
Dodam tylko gdybyś nie mógł zrozumieć, prefiks, przyrostek, rozszerzenie czy jakkolwiek to sobie nazwiemy -md to nie tryb -debug.
Dałeś rozszerzenie -monolith (czcionka,tekst,audio w jednym) ok, dalej raz -md pozostałe -mt albo jedno albo drugie.
Co do plików redystrybucyjnych dodaj je najpierw do zwykłego konsolowego "Hello world!".
Statyczny plik wykonywalny exe dla allegro5 wcale nie będzie taki malutki, samo okno ok 700 KB, czcionka ttf plus ok 400 KB, audio 400 KB, bitmapy kolejne kilobajty w Allegro5.0.10  to już 2.2MB (bez kompresji).
Tytuł tematu taki ogólny czyli może dotyczyć także linkowania statycznego w Code::Blocks,  przykład
P-88997
« 1 »
  Strona 1 z 1