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

[SFML] Linkowanie statyczne

Ostatnio zmodyfikowano 2017-03-11 20:09
Autor Wiadomość
sebox
Temat założony przez niniejszego użytkownika
[SFML] Linkowanie statyczne
» 2017-03-10 20:58:03
Tak jak w tutorialu dodałem SFML_STATIC do preprocessora w konfiguracji Debug podlinkowałem:
C/C++
sfml - graphics - s - d.lib
sfml - window - s - d.lib
sfml - system - s - d.lib
opengl32.lib
freetype.lib
jpeg.lib
sfml - window - s - d.lib
winmm.lib
gdi32.lib
sfml - audio - s - d.lib
openal32.lib
flac.lib
vorbisenc.lib
vorbisfile.lib
vorbis.lib
ogg.lib
sfml - network - s - d.lib
ws2_32.lib
sfml - system - s - d.lib

a w Release
C/C++
sfml - graphics - s.lib
sfml - window - s.lib
sfml - system - s.lib
opengl32.lib
freetype.lib
jpeg.lib
sfml - window - s.lib
winmm.lib
gdi32.lib
sfml - audio - s.lib
openal32.lib
flac.lib
vorbisenc.lib
vorbisfile.lib
vorbis.lib
ogg.lib
sfml - network - s.lib
ws2_32.lib
sfml - system - s.lib

Program normalnie się kompiluje zwiększa się waga programu, czyli biblioteki się podlinkowały, próbuję włączyć i mam znany błąd "Program client.exe przestał działać." Wydaje mi się, że problem może być w tych zależnościach podlinkowanych, ale tak jest napisane w tutorialu SFMLa. Macie jakieś spostrzeżenia ?
P-158818
j23
» 2017-03-11 11:25:32
Przy statycznym linkowaniu ważna jest wersja kompilatora, na którym została skompilowana biblioteka (dlatego też rzadko tego typu biblioteki są udostępniane przez twórców). Jeśli Twój kompilator ma inną wersję od tego z biblioteki, prawdopodobnie będziesz musiał skompilować SFML na swoim kompilatorze.

P.S. dlaczego niektóre biblioteki dodajesz dwa razy?
P-158832
Bielan
» 2017-03-11 15:38:55
1. Zastanów się, czy na pewno chcesz linkować statycznie.
2. Odpal program z konsoli i zobacz, czy nie wypisuje on dodatkowych informacji w komunikacie po wykonaniu.
P-158841
sebox
Temat założony przez niniejszego użytkownika
» 2017-03-11 18:55:48
Potrzebuję linkować statycznie, bo napisałem grę którą chcę uruchomić na innych komputerach. Przebudowałem już SFMLa ale teraz mam błąd "LNK1181 cannot open input file 'freetype.lib' client"  Po przebudowaniu nie utworzył mi się ten plik.

Niektóre biblioteki dodałem 2 razy bo żywcem skopiowałem z tutoriala SFMLa i było napisane, że to nie powinno na nic wpływać.
P-158862
j23
» 2017-03-11 19:16:24
Przecież przy linkowaniu dynamicznym też możesz uruchamiać na innych komputerach. Jedyne co musisz zrobić, to wrzucić do katalogu z programem niezbędne pliki dll.


p.s. jeśli nie ma wpływu, to po co to robić? Takie programistyczne voodoo?
P-158863
sebox
Temat założony przez niniejszego użytkownika
» 2017-03-11 19:21:05
Wiem, że mogę ale słabo to wygląda. Tak z rozpędu skopiowałem, już poprawiłem. Jeżeli jest możliwość linkowania statycznego, to chociaż do 1 projektu chciałbym to zastosować żeby wiedzieć na przyszłość z czym to się je.
P-158865
Bielan
» 2017-03-11 19:32:41
@sebox,


Wiem, że mogę ale słabo to wygląda.

dlaczego słabo? Tak najczęściej wygląda dystrybucja gier na Windowsach.

Dalej pytam:

2. Odpal program z konsoli i zobacz, czy nie wypisuje on dodatkowych informacji w komunikacie po wykonaniu.
P-158867
j23
» 2017-03-11 19:33:50
Czy ściągnąłeś właściwą wersję binarek SFML-a dla Twojego kompilatora?
P-158868
« 1 » 2
  Strona 1 z 2 Następna strona