niezdefiniowane odwołanie do zdefiniowanego obiektu

niezdefiniowane odwołanie do zdefiniowanego obiektu
Roman Kwaśniewski
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 6 lat
  • Postów:52
0

Oto komunikat błędu jaki otrzymuję

Kopiuj
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0xe): undefined reference to `glfwInit'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x5c): undefined reference to `glfwWindowHint'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x6b): undefined reference to `glfwWindowHint'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x7a): undefined reference to `glfwWindowHint'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x89): undefined reference to `glfwWindowHint'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x98): undefined reference to `glfwWindowHint'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0xa7): more undefined references to `glfwWindowHint' follow
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0xcc): undefined reference to `glfwCreateWindow'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x110): undefined reference to `glfwTerminate'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x129): undefined reference to `glfwMakeContextCurrent'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x130): undefined reference to `__imp_glewInit'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x16c): undefined reference to `glfwTerminate'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x190): undefined reference to `glfwSetInputMode'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x1a9): undefined reference to `glClearColor'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x1b3): undefined reference to `glClear'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x1c2): undefined reference to `glfwSwapBuffers'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x1c7): undefined reference to `glfwPollEvents'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x1db): undefined reference to `glfwGetKey'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x1ef): undefined reference to `glfwWindowShouldClose'
C:\Users\Lenovo\AppData\Local\Temp\ccDywbmz.o	playground.cpp:(.text+0x208): undefined reference to `glfwTerminate'
C:\Users\Lenovo\Desktop\collect2.exe	[Error] ld returned 1 exit status

mimo, że wszystkie funkcje są zadeklarowane w bibliotekach co sprawdziłem. Kliknąłem przytrzymując ctrl i przekierowało mnie do deklaracji. Dodam, że używam devc++ , a kod który próbowałem skompilować pochodzi z tego tutoriala opengl http://www.opengl-tutorial.org/beginners-tutorials/tutorial-1-opening-a-window/

rrowniak
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 miesiące
  • Postów:82
1

A czy linker ld wie gdzie znajduje się biblioteka libglfw3.a, i czy w ogóle wie, że ma taką bibliotekę linkować?


Roman Kwaśniewski
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 6 lat
  • Postów:52
0
rrowniak napisał(a):

A czy linker ld wie gdzie znajduje się biblioteka libglfw3.a, i czy w ogóle wie, że ma taką bibliotekę linkować?

Ściągnąłem taki plik z internetu i dodałem do linkera. Nie zmieniło to nic.

edytowany 1x, ostatnio: Roman Kwaśniewski
rrowniak
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 miesiące
  • Postów:82
1

Tutaj ktoś miał podobny problem: https://stackoverflow.com/questions/43445942/opengl-glfw-undefined-reference-to-glfwinit
Najlepiej gdybyś zbudował tą bibliotekę ze źródeł. Jeśli już ściągasz to upewnij się, że jest z oficjalnego źródła i najlepiej odpowiada Twojemu systemowi operacyjnemu. Przed budowaniem wyczyść projekt (Clean All). Jeśli to wszystko nie pomoże to wklej wywołanie ld z wszystkimi jego parametrami.


Roman Kwaśniewski
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 6 lat
  • Postów:52
0

Nadal mi nie działa, mimo że próbuję na wszystkie sposoby. Nie wiem co to jest "wywołanie ld"

MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:14 minut
0

Zgaduję, że dołączasz bibliotekę nie z tego targetu co trzeba. Przykładowo masz aplikację 64bit a biblioteka jest zbudowana na 32bity.
Względnie nie ten kompilator.
Albo po prostu ta biblioteka nie została dołączona do procesu budowania.

Jaki masz kompilator?
Czego używasz do budowania?


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22
Roman Kwaśniewski
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 6 lat
  • Postów:52
0

używam MINGW
Program i biblioteka są zbudowane 32bit

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.