niezdefiniowane odwołanie do zdefiniowanego obiektu

0

Oto komunikat błędu jaki otrzymuję

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/

1

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

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.

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.

0

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

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?

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1