• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kompilacja SFML na Ubuntu z użyciem CMake - brak CMakeLists.txt

Object Storage Arubacloud
+1 głos
704 wizyt
pytanie zadane 28 sierpnia 2016 w C i C++ przez easytodo Mądrala (5,380 p.)

Witam,

podczas pisania aplikacji w SFML, przy próbie użycia metody texture.loadFromFile(std::string path), napotkałem problem. Otóż kompilator g++ w CodeLite wyrzuca taki błąd:
undefined reference to 'sf::Texture::loadFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, sf::Rect<int> const&)'

W sieci znalazłem rozwiązanie tego problemu - ponowna kompilacja SFML przy użyciu programu CMake.

Problem tkwi w tym, że mój folder z nowo pobraną paczką SFML'a nie zawiera pliku CMakeLists.txt, przez co kompilacja przez CMake jest niemożliwa. 

Bibliotekę pobrałem stąd: http://www.sfml-dev.org/download/sfml/2.4.0/ (zakładka Linux -> GCC-64-bit, korzystam z Ubuntu 16.04 LTS)
Kieruję się tym tutorialem: http://seriousitguy.blogspot.com/2014/05/how-to-setup-sfml-on-ubuntu-1404-lts.html

A to błąd który otrzymuję po wpisaniu w konsoli: cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug -D BUILD_SHARED_LIBS=TRUE .

CMake Error: The source directory "/home/chris/dev/sfml/SFML-2.4.0" does not appear to contain CMakeLists.txt.

Proszę o pomoc w poprawnym skompilowaniu SFML'a lub o podanie innego sposobu aby działał on bez problemu z CodeLitem.

Ładowanie tekstur działa, ale tylko, gdy program kompiluję z poziomu konsoli komendami:

>  g++ -c main.cpp

> g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system

> ./sfml-app

(CodeLite przy budowaniu projektu dalej jest cały czerwony od 'undefined references')

 

4 odpowiedzi

+1 głos
odpowiedź 28 sierpnia 2016 przez criss Mędrzec (172,590 p.)
wybrane 29 sierpnia 2016 przez easytodo
 
Najlepsza

Pobierz z githuba i nie powinno być problemu https://github.com/SFML/SFML

0 głosów
odpowiedź 29 sierpnia 2016 przez easytodo Mądrala (5,380 p.)

Po pobraniu kodu z GitHuba brakujący plik jest, ale pojawiły się następne błędy i już nie wiem co z tym zrobić...

-- Could NOT find LIBXCB_IMAGE (missing:  LIBXCB_IMAGE_LIBRARY)  
CMake Error at cmake/Modules/FindXCB.cmake:93 (message): 
  xcb-image not found 
Call Stack (most recent call first): 
  src/SFML/Window/CMakeLists.txt:209 (find_package)

Próbowałem pobrać: https://launchpad.net/ubuntu/+source/xcb-util-image/0.4.0-1build1 
ale mam problemy z komendą 'make'. Po wpisaniu make: 
make: *** Nie podano obiektów i nie znaleziono makefile. Stop. 
A po wpisaniu ls wyświetlają się m.in. następujące pliki: 
Makefile.am, Makefile.in

Wpisywałem już sudo apt-get install build-essential

0 głosów
odpowiedź 29 sierpnia 2016 przez afferu Mądrala (5,220 p.)
Jak masz linuxa, to pobierz sobie przez apt libsfml2-dev cały pakiet biblioteki. Albo ściągnij skompilowane dll ze strony sfml. Do normalnego użytku chyba nie potrzeba dokonywać kompilacji samemu.
komentarz 29 sierpnia 2016 przez unknown Nałogowiec (39,560 p.)
Trzeba jeśli nie używa default'owego kompilatora.
komentarz 29 sierpnia 2016 przez easytodo Mądrala (5,380 p.)

Ok pobrałem wszystkie potrzebne paczki i skompilowałem CMakiem errora żadnego nie wyrzuciło ale po podlinkowaniu wszystkiego do CodeLite'a przy budowaniu projektu dostaję taki komunikat: 

/bin/sh -c '/usr/bin/make -j8 -e -f  Makefile'
----------Building project:[ SFML-Flashcards - Debug ]----------
make[1]: Entering directory '/home/chris/CodeLiteProjects/SFML-Flashcards'
/usr/bin/g++ -o ./Debug/SFML-Flashcards @"SFML-Flashcards.txt" -L. -L/home/chris/dev/sfml/SFML/lib  -lsfml-graphics -lsfml-window -lsfml-audio -lsfml-network -lsfml-system
/usr/bin/ld: ./Debug/SFML-Flashcards: hidden symbol `__cpu_model' in /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a(cpuinfo.o) is referenced by DSO
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
SFML-Flashcards.mk:76: recipe for target 'Debug/SFML-Flashcards' failed
make[1]: *** [Debug/SFML-Flashcards] Error 1
make[1]: Leaving directory '/home/chris/CodeLiteProjects/SFML-Flashcards'
Makefile:4: recipe for target 'All' failed
make: *** [All] Error 2
====1 errors, 0 warnings====

 

0 głosów
odpowiedź 29 sierpnia 2016 przez easytodo Mądrala (5,380 p.)

Problem rozwiązany! Może komuś się przyda: pobrać paczkę z githuba, zostawić CMake w spokoju i nic nim nie kompilować, podpiąć SFML'a pod IDE i wszystko działa :)
+ w razie potrzeby pobrać wszystkie pakiety stąd: https://gist.github.com/NoobsArePeople2/8086528

komentarz 29 sierpnia 2016 przez criss Mędrzec (172,590 p.)
CMake nie kompiluje, tylko tworzy projekt pod wybrane środowisko, który następnie się kompiluje.

Podobne pytania

0 głosów
0 odpowiedzi 453 wizyt
pytanie zadane 29 lipca 2021 w C i C++ przez wokiap Nowicjusz (240 p.)
–1 głos
0 odpowiedzi 1,166 wizyt
pytanie zadane 6 lipca 2019 w C i C++ przez tkz Nałogowiec (42,000 p.)
0 głosów
0 odpowiedzi 534 wizyt
pytanie zadane 13 grudnia 2016 w C i C++ przez Knayder Nałogowiec (37,640 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...