SFML problem z linkowaniem statycznym.
Ostatnio zmodyfikowano 2016-03-01 22:20
MatrixKiler Temat założony przez niniejszego użytkownika |
SFML problem z linkowaniem statycznym. » 2016-02-23 21:15:55 Mam problem... Kiedy linkuje bibliotekę SFML 2.3.2 dynamicznie (w linker settings w pisuje miedzy innymi sfml-grahics-d) wszystko działa ale tylko w CB bo gdy chce uruchomić przez plik .exe wyskakuje mi "Aplikacja nie została uruchomiona właściwie (0xc000007b)" więc sobie pomyślałem że zlinkuje statycznie. Wpisałem w #defines SFML_STATIC zmieniłem linker na sfml-graphics-s-d (w Release także odpowiednio sfml-graphics-s) i nie działa w ogóle.
CB 16.01 GCC 4.8.1 32-bit
(Wklejam logi tak po prostu bo nie wiem jak to zrobić "ładnie" jak ktoś wie to przy okazji może napisać)
-------------- Build: Debug in Temptale (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -LF:\C++\SFML-2.3.2\lib -o Temptale.exe obj\Debug\main.o -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-system-s-d -mwindows F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(RenderWindow.cpp.obj): In function `ZNK2sf12RenderWindow7captureEv': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderWindow.cpp:92: undefined reference to `glReadPixels@28' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget5clearERKNS_5ColorE': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:105: undefined reference to `glClearColor@16' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:106: undefined reference to `glClear@4' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget4drawEPKNS_6VertexEjNS_13PrimitiveTypeERKNS_12RenderStatesE': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:275: undefined reference to `glVertexPointer@16' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:276: undefined reference to `glColorPointer@16' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:277: undefined reference to `glTexCoordPointer@16' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:286: undefined reference to `glDrawArrays@12' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget12pushGLStatesEv': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:310: undefined reference to `glGetError@0' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:320: undefined reference to `glPushClientAttrib@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:321: undefined reference to `glPushAttrib@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:323: undefined reference to `glMatrixMode@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:324: undefined reference to `glPushMatrix@0' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:325: undefined reference to `glMatrixMode@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:326: undefined reference to `glPushMatrix@0' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:327: undefined reference to `glMatrixMode@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:328: undefined reference to `glPushMatrix@0' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget11popGLStatesEv': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:340: undefined reference to `glMatrixMode@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:341: undefined reference to `glPopMatrix@0' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:342: undefined reference to `glMatrixMode@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:343: undefined reference to `glPopMatrix@0' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:344: undefined reference to `glMatrixMode@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:345: undefined reference to `glPopMatrix@0' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:347: undefined reference to `glPopClientAttrib@0' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:348: undefined reference to `glPopAttrib@0' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget13resetGLStatesEv': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:373: undefined reference to `glDisable@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:374: undefined reference to `glDisable@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:375: undefined reference to `glDisable@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:376: undefined reference to `glDisable@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:377: undefined reference to `glEnable@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:378: undefined reference to `glEnable@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:379: undefined reference to `glMatrixMode@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:380: undefined reference to `glEnableClientState@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:381: undefined reference to `glEnableClientState@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:382: undefined reference to `glEnableClientState@4' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget16applyCurrentViewEv': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:418: undefined reference to `glViewport@16' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:421: undefined reference to `glMatrixMode@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:422: undefined reference to `glLoadMatrixf@4' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:425: undefined reference to `glMatrixMode@4' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget14applyBlendModeERKNS_9BlendModeE': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:443: undefined reference to `glBlendFunc@8' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget14applyTransformERKNS_9TransformE': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:484: undefined reference to `glLoadMatrixf@4' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(GLCheck.cpp.obj): In function `ZN2sf4priv12glCheckErrorEPKcjS2_': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/GLCheck.cpp:41: undefined reference to `glGetError@0' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(Texture.cpp.obj): In function `checkMaximumTextureSize': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:64: undefined reference to `glGetIntegerv@8' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(Texture.cpp.obj): In function `ZN2sf7TextureD2Ev': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:112: undefined reference to `glDeleteTextures@8' F:\C++\SFML-2.3.2\lib/libsfml-graphics-s-d.a(Texture.cpp.obj): In function `ZN2sf7Texture6createEjj': D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:154: undefined reference to `glGenTextures@8' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:181: undefined reference to `glBindTexture@8' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:182: undefined reference to `glTexImage2D@36' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:183: undefined reference to `glTexParameteri@12' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:184: undefined reference to `glTexParameteri@12' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:185: undefined reference to `glTexParameteri@12' D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:186: undefined reference to `glTexParameteri@12' Process terminated with status 1 (0 minute(s), 0 second(s)) 50 error(s), 0 warning(s) (0 minute(s), 0 second(s))
|
|
Gibas11 |
» 2016-02-23 22:31:04 Przy linkowaniu statycznym powinieneś też statycznie podlinkować biblioteki OGL, w każdym razie na ich brak wskazuje log. |
|
MatrixKiler Temat założony przez niniejszego użytkownika |
Biblioteki OpenGL » 2016-02-24 14:14:08 W takim razie pytanko czy są one zawarte w SFML (patrzyłem w folderze lib nie ma nic o "nazwie" ogl ale mogę czegoś nie wiedzieć) jeśli tak to jak sie nazywają (co mam wpisac w linker )i mam rozumieć że linkuje tak jak inne z tym -s? |
|
Gabes |
» 2016-02-25 02:18:23 Jak nie ma jak jest: CodeBlocks/MinGW/lib/libopengl32.a CodeBlocks/MinGW/include/GL/gl.h
W Linker settings wpisz libopengl32.a lub opengl32
|
|
MatrixKiler Temat założony przez niniejszego użytkownika |
cd. » 2016-02-25 19:24:25 Więc tak. Wpisałem to libopengl32.a w Linker settings->Link libraries. W Search directories wpisałem folder lib w MinGW. (Wydaje mi sie ze tak trzeba było ale jak nie to powiedzcie) Gdy to zrobiłem podczas włączanie .exe wyskakują 4 okienka (po sobie nie wszystkie naraz) że brakuje libgcc_s_sjli-1.dll (dwa razy) i libstdc++-6.dll (też dwa razy ?!) Ściągnąłem je z netu i wrzuciłem do folderu z .exe... I znowu taka sama akcja tylko z bibliotekami libgcc_s_sjlj-1.dll i libgcc_s_dw2-1.dll (co ciekawe to pierwsze wyskakuje 3 razy). Ponownie ściągam je z netu i odpalam .exe a tam znowu "Aplikacja nie została uruchomiona poprawnie ...".
Po wrzuceniu tych dll-ek nie da się skompilować projektu w CB. ;( Jakieś pomysły? Czy nie ściągać ich z netu tylko je znowu jakoś zlinkować? Błagam o pomoc. :)
|
|
1aam2am1 |
» 2016-02-25 19:35:40 |
|
Gibas11 |
» 2016-02-25 19:42:23 Te dll'ki są w twoim folderze MinGW, weź je stamtąd. |
|
MatrixKiler Temat założony przez niniejszego użytkownika |
Nie rozumiem xD » 2016-02-25 20:07:20 @1aam2am1 Mam wpisać to wszystko co ty masz? @Gibas11 Mam je zlinkować? bo w folderze MinGW są tylko *.a nie ma .dll
Dzięki za odpowiedzi. |
|
« 1 » 2 |