Konfiguracja SFML pod Debian pod Codeblocks.
Ostatnio zmodyfikowano 2018-04-22 20:28
znyk Temat założony przez niniejszego użytkownika |
Konfiguracja SFML pod Debian pod Codeblocks. » 2018-04-16 16:31:51 Skonfigurowałem Codeblocks według: https://www.sfml-dev.org/tutorials/2.4/start-cb.phpPrzy konpilacji przykł. progz. #include <SFML/Graphics.hpp> int main() { sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!"); sf::CircleShape shape(100.f); shape.setFillColor(sf::Color::Green); while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) window.close(); } window.clear(); window.draw(shape); window.display(); } return 0; } mam błąd -------------- Build: Debug in testik (compiler: GNU GCC Compiler)--------------- > g++ -L/home/znyk/SFML-2.4.2/lib -o bin/Debug/testik obj/Debug/tescik.o /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a /home/znyk/SFML-2.4.2/lib/libsfml-audio-s-d.a /home/znyk/SFML-2.4.2/lib/libsfml-network-s-d.a /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a /home/znyk/SFML-2.4.2/lib/libsfml-system-s-d.a /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(Color.cpp.o): relocation R_X86_64_32 against hidden symbol `_ZN2sf5Color5BlackE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(RenderStates.cpp.o): relocation R_X86_64_32 against hidden symbol `_ZN2sf12RenderStates7DefaultE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(RenderTarget.cpp.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(RenderWindow.cpp.o): relocation R_X86_64_32S against hidden symbol `_ZTVN2sf12RenderWindowE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(Shader.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(Texture.cpp.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(TextureSaver.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(Transform.cpp.o): relocation R_X86_64_32 against hidden symbol `_ZN2sf9Transform8IdentityE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(GLLoader.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(Shape.cpp.o): relocation R_X86_64_32S against hidden symbol `_ZTVN2sf5ShapeE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(CircleShape.cpp.o): relocation R_X86_64_32S against hidden symbol `_ZTVN2sf11CircleShapeE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(VertexArray.cpp.o): relocation R_X86_64_32S against hidden symbol `_ZTVN2sf11VertexArrayE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(BlendMode.cpp.o): relocation R_X86_64_32 against hidden symbol `_ZN2sf10BlendAlphaE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(GLCheck.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(GLExtensions.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(Image.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(ImageLoader.cpp.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a(Transformable.cpp.o): relocation R_X86_64_32S against hidden symbol `_ZTVN2sf13TransformableE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(Context.cpp.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(GlContext.cpp.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(GlResource.cpp.o): relocation R_X86_64_32 against symbol `__gxx_personality_v0@@CXXABI_1.3' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(VideoMode.cpp.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(Window.cpp.o): relocation R_X86_64_32S against hidden symbol `_ZTVN2sf6WindowE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(WindowImpl.cpp.o): relocation R_X86_64_32S against hidden symbol `_ZTVN2sf4priv10WindowImplE' can not be used when making a shared object /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(VideoModeImpl.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(WindowImplX11.cpp.o): relocation R_X86_64_32 against undefined symbol `__pthread_key_create' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(GlxContext.cpp.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(GlxExtensions.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(JoystickManager.cpp.o): relocation R_X86_64_32 against undefined symbol `__pthread_key_create' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(SensorManager.cpp.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(Display.cpp.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(JoystickImpl.cpp.o): relocation R_X86_64_32 against undefined symbol `__pthread_key_create' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a(Joystick.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-system-s-d.a(Err.cpp.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-system-s-d.a(Lock.cpp.o): relocation R_X86_64_32 against symbol `__gxx_personality_v0@@CXXABI_1.3' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-system-s-d.a(Mutex.cpp.o): relocation R_X86_64_32 against symbol `__gxx_personality_v0@@CXXABI_1.3' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-system-s-d.a(String.cpp.o): relocation R_X86_64_32 against undefined symbol `__pthread_key_create' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-system-s-d.a(ThreadLocal.cpp.o): relocation R_X86_64_32 against symbol `__gxx_personality_v0@@CXXABI_1.3' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /home/znyk/SFML-2.4.2/lib/libsfml-system-s-d.a(Time.cpp.o): relocation R_X86_64_32 against hidden symbol `_ZN2sf4Time4ZeroE' can not be used when making a shared object /usr/bin/ld: final link failed: Nonrepresentable section on output collect2: error: ld returned 1 exit status Process terminated with status 1 (0 minute(s), 0 second(s)) 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) |
|
maly7 |
» 2018-04-16 18:01:03 W opcjach linkera na pewno dodałeś biblioteki sfml? |
|
znyk Temat założony przez niniejszego użytkownika |
» 2018-04-17 11:59:29 Opcje linkera:
/home/znyk/SFML-2.4.2/lib/libsfml-graphics-s-d.a /home/znyk/SFML-2.4.2/lib/libsfml-audio-s-d.a /home/znyk/SFML-2.4.2/lib/libsfml-network-s-d.a /home/znyk/SFML-2.4.2/lib/libsfml-window-s-d.a /home/znyk/SFML-2.4.2/lib/libsfml-system-s-d.a
??? |
|
mateczek |
» 2018-04-19 00:32:54 -L/home/znyk/SFML-2.4.2/lib |
WTF?? Nie po to się instaluje Linuxa by się z tym bujać w ten sam sposób jak na Windowsie !!!! sprawę powinno załatwić zainstalowanie sfml komendą sudo apt-get install sfml-dev
|
|
znyk Temat założony przez niniejszego użytkownika |
» 2018-04-22 12:40:29 root@debian:/home/znyk# sudo apt-get install sfml-dev Czytanie list pakietów... Gotowe Budowanie drzewa zależności Odczyt informacji o stanie... Gotowe E: Nie udało się odnaleźć pakietu sfml-dev root@debian:/home/znyk# |
|
jankowalski25 |
» 2018-04-22 12:45:56 Dlatego, że w Debianie to się pewnie nazywa libsfml-dev (w razie wątpliwości zamiast install wchodzi słówko search, w tym przypadku apt-cache search cokolwiek szuka pakietów zawierających w swojej nazwie cokolwiek). |
|
mateczek |
» 2018-04-22 20:28:18 Dlatego, że w Debianie to się pewnie nazywa libsfml-dev |
mój błąd pisałem z kompa z windowsem i nie sprawdziłem. Do autora (testowane na ubuntu) sudo apt-get install libsfml-dev codeblocks build-essential
pierwsze to biblioteka sfml w wersji dla programistów "-dev" drugi to codeblocks trzecie to kompilatory i trochę innych narzędzi. Po wykonaniu tego polecenia dostaniesz komplet narzędzi i zakładając , że plik o kodzie który podałeś będzie się nazywał test.cpp to skompilować go możesz poleceniem g++ test.cpp -lsfml-graphics -lsfml-window -lsfml-system W wyniku kompilacji powstanie plik wykonywalny "a.out" (na Linuxie nie ma ".exe") Z tego wynika, że po zainstalowaniu tych pakietów do swojego codeblocksa będziesz musiał dodać opcje Linkera (te z literką "-l") i tego już nie przeskoczysz. Dystrybucje bazujące na Linuksie mają dość bogate repozytoria i oprogramowanie można instalować za pomocą managera pakietów. Dla Debiana czy Ubuntu jest to program "apt-get" Oczywiście gdy ten soft z repozytoriów przestanie, Ci wystarczać wówczas trzeba się posłużyć pracą na piechotę. Co do Ubuntu to mi np nie wystarcza już (Qt "brak wsparcia dla androida", czy "eclipse" nie wiedzieć czemu ciągle jakaś historyczna wersja w repo siedzi) |
|
« 1 » |