cannot find -lsfml-graphics-d

cannot find -lsfml-graphics-d
Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Dzień dobry.

Postanowiłem napisać program w c++ z użyciem biblioteki SFML. Używam środowiska Code::Blocks. Gdy utworzyłem projekt SFML, wybrałem odpowiednią ścieżkę do pobranej biblioteki, i spróbowałem skompilować przykładowy program który wstawił mi C::B, wyskoczyło mi kilka błędów. Przeszukałem internet i nie znalazłem niczego co rozwiązałoby mój problem.

screenshot-20201001173922.png
screenshot-20201001174127.png
screenshot-20201001174203.png

GS
  • Rejestracja:ponad 8 lat
  • Ostatnio:8 dni
  • Postów:1265
1

Podałeś jakie biblioteki projekt ma linkować, ale linker wciąż nie zna ich lokalizacji. Czy masz zainstalowanego SFMLa w systemie? Jeśli tak, musisz określić w projekcie, gdzie leżą biblioteki (link directory) i pliki nagłówkowe (include/header directory).

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

SFML-a pobrałem i rozpakowałem do C:\SFML-2.5.1. Podczas tworzenia projektu C::B zapytał mnie o lokalizację biblioteki, dodatkowo podpowiedział że w tym folderze powinny się znajdować foldery include oraz lib, więc podałem C:\SFML-2.5.1. Nic nie zmieniałem, projekt został taki jaki C::B wygenerował. Mógłbyś wytłumaczyć jak to zrobić? Pierwszy raz używam zewnętrznych bibliotek oraz SFML-a.

GS
  • Rejestracja:ponad 8 lat
  • Ostatnio:8 dni
  • Postów:1265
1

Nie znam Code::Blocks ani SFMLa, ale wszędzie to wygląda podobnie. Jeśli w opcjach linkera podałeś katalog, gdzie ma szukać, to powinno działać. Widzę tam zakładkę "Search directories" - tam powinno się chyba podać katalog z bibliotekami. Zapewne w C:\SFML-2.5.1 są jeszcze podkatalogi, z bibliotekami, nagłówkami, itp. upewnij się, że podałeś w opcjach projektu dokładną lokalizację gdzie są biblioteki (czyli np.: C:\SFML-2.5.1\lib) a nie ogólnie C:\SFML-2.5.1.

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

W Search directories -> Compiler jest wpisane C:\SFML-2.5.1\include, a w Search directories -> Linker C:\SFML-2.5.1\lib, więc ścieżki są podane. Sprawdzałem to również z poradnikiem na YouTube, i wszystko jest teoretycznie dobrze. Problem jest dziwny i borykam się z nim już długo. Zdecydowałem się na posta bo nie wiedziałem co jest nie tak.

CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:19 minut
  • Postów:2320
0

Wrzucałeś biblioteki dll do folderu z projektem?

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Nie...

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Wrzuciłem ale nic to nie dało

TomaszLiMoon
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 2 godziny
  • Postów:530
0

Spróbuj zamienić wpisy
sfml-graphics-d na C:\SFML-2.5.1\lib\libsfml-graphics-d.a
sfml-window-d na C:\SFML-2.5.1\lib\libsfml-window-d.a
sfml-system-d na C:\SFML-2.5.1\lib\libsfml-system-d.a

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Błąd nadal się pojawia. Próbowałem też wrzucić pliki z rozszerzeniem .a do folderu projektu ale również bez efektu

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Błędy zniknęły, źle za pierwszym razem przepisałem, ale pojawiło się mnóstwo błędów "undefined reference to". Nawet po wrzuceniu dllów

TomaszLiMoon
Sprawdź czy ściągnąłeś poprawną wersję SMFLa - 32 czy 64 bitową, oraz pod właściwy kompilator.
GS
  • Rejestracja:ponad 8 lat
  • Ostatnio:8 dni
  • Postów:1265
0
Kamil B napisał(a):

Błąd nadal się pojawia. Próbowałem też wrzucić pliki z rozszerzeniem .a do folderu projektu ale również bez efektu

Jakie '.a' jak to jest Windows? To będą pliki '.lib'.

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Hmm... w katalogu lib są tylko pliki .a. Nie jestem jeszcze zaawansowanym programistą. Dopiero się uczę. To pierwszy raz gdy spotykam się używaniem bibliotek takich jak SFML

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Z tego co pamiętam, to pobrałem najnowszą wersję 32 bitową (tylko taka była) pod C::B. Teraz ją zaktualizowałem, nic się nie zmieniło. Kojarzę że 32 bit działa na 64 bit.

edytowany 2x, ostatnio: Kamil B
GS
  • Rejestracja:ponad 8 lat
  • Ostatnio:8 dni
  • Postów:1265
0
Kamil B napisał(a):

Z tego co pamiętam, to pobrałem najnowszą wersję 32 bitową (tylko taka była) pod C::B. Teraz ją zaktualizowałem, nic się nie zmieniło. Kojarzę że 32 bit działa na 64 bit.

Ale pobrałeś wersję dla Windowsa czy Linuxa?

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Pod Windowsa, przynajmniej tak mi się wydaje, bo obok tabelki z której pobrałem jest wyznaczona strefa pobrań dla Linuxa.

GS
Ok, może być .a bo to pod MinGW
T3
  • Rejestracja:ponad 4 lata
  • Ostatnio:7 miesięcy
  • Postów:687
1

Używałem SFML w visual studio, ale korzystałem z tej strony klik. Sporo też pomagają tutoriale na youtube, ale nie chcę żadnego linkować, bo nie pracowałem w code blocks. Zrób tak jak w linku od samego początku, wszystko powinno śmigać

Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Niestety po wykonaniu wszystkich kroków w poradniku (sprawdzałem kilka razy) sytuacja się nie zmieniła. Spróbuję jeszcze dla VS, ale na C::B nie działa. Najpierw pojawiły się błędy "cannot find", a po zmianie o jakiej napisał mi GutekSan (zamienienie sfml-graphics-d na pełną ścieżkę) pojawiło się mnóstwo "undefined reference to". Według poradnika mam wykonać jeszcze raz to samo, ale dalej błędy się pojawiają. Nie wiem co jest grane z tą biblioteką.

RE
  • Rejestracja:ponad 18 lat
  • Ostatnio:34 minuty
0

We are the 4p. Existence, as you know it, is over. We will add your biological and technological distinctiveness to our own. Resistance is futile
edytowany 1x, ostatnio: revcorey

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.