DOMANDA Programmare con lib OpenGL

JDany

Utente Attivo
411
23
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
Salve. Ho appena iniziato ad utilizzare la libreria OpenGL per creare della grafica per i miei programmi C++/C.

Utilizzo GLFW 3 e Glad, il tutto installato su Visual Studio 2017.

Il problema è che alcune funzioni, es glad_glClear() non le trova, o meglio l'errore che mi viene restituito è questo: "simbolo esterno non trovato". E' come se trova il prototipo di funzione ma non la definizione.

Se qualcuno ha avuto il mio stesso problema spero avrete trovato la soluzione, perchè io non riesco proprio a risolvere. Nel progetto ovviamente ho incluso il file Glad.c che viene generato dal sito Glad.
 

DispatchCode

Utente Attivo
591
340
Hardware Utente
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
Assicurati di aver incluso i file header necessari e di aver linkato le librerie corrette.
Che header includi?
Come compili?
 

JDany

Utente Attivo
411
23
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro

DispatchCode

Utente Attivo
591
340
Hardware Utente
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
Solo per puntualizzare:
- l'header "glad.h" deve essere fatto prima di "glfw3"
- il link di glfw3 deve avvenire prima di opengl32.

Secondo me ti manca -lglu32.
 

JDany

Utente Attivo
411
23
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
Solo per puntualizzare:
- l'header "glad.h" deve essere fatto prima di "glfw3"
- il link di glfw3 deve avvenire prima di opengl32.

Secondo me ti manca -lglu32.

Si includo gli header e i link nel modo in cui hai scritto.

E molto probabilmente si, mi manca lglu32 perché non ho mai sentito questa lib oppure mi è sfuggita della lettura.
 

DispatchCode

Utente Attivo
591
340
Hardware Utente
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
Perdonami, glu32 non c'entra nulla in questo caso (se non ricordo male è deprecata). Ho detto -lglu, ma volevo in realtà scrivere glad.

Utilizzi VS, ma compili con il compilatore di Microsoft oppure altro (come MinGw)? Assicurati di aver utilizzato le librerie corrette.
Avevo avuto anche io qualche problema in passato, e con MinGw avevo linkato anche gdi (-lgdi32).

Stai utilizzando CMake? In tal caso mostraci anche il CMakeLists che stai usando.
 

JDany

Utente Attivo
411
23
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
Perdonami, glu32 non c'entra nulla in questo caso (se non ricordo male è deprecata). Ho detto -lglu, ma volevo in realtà scrivere glad.

Utilizzi VS, ma compili con il compilatore di Microsoft oppure altro (come MinGw)? Assicurati di aver utilizzato le librerie corrette.
Avevo avuto anche io qualche problema in passato, e con MinGw avevo linkato anche gdi (-lgdi32).

Stai utilizzando CMake? In tal caso mostraci anche il CMakeLists che stai usando.
Io compilo utilizzando MinGW.

Ho utilizzato CMake per creare i file di glfw3, come dice nella guida che ho linkato su.
 

DispatchCode

Utente Attivo
591
340
Hardware Utente
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
Hai linkato gdi?
 

JDany

Utente Attivo
411
23
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
Comunque non riesco a risolvere..

L'errore è sempre lo stesso.
 

DispatchCode

Utente Attivo
591
340
Hardware Utente
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
Stasera dovrei aver tempo, e compilo sul mio. Ti dico quale flag ti stai perdendo.

Che versione usi di MinGw?
Post automaticamente unito:

Dovresti pubblicare il CMakeLists.txt.
Inoltre, stando a quanto dici in un precedente post, ho visto che non linki la libreria corretta: stai utilizzando MinGw, quindi compili con gcc, dovresti linkare -ldl .

Non ho più tutto il progetto, prima di riscaricare tutto attendo tuoi aggiornamenti in merito; se hai ancora difficoltà scarico la nuova versione di GLFW e glad e compilo un codice di esempio.

Qualche ulteriore nota.
Assicurati che il percorso agli header sia corretto; io utilizzo le variabili d'ambiente (la lib è SDL2 in questo caso) con il path alla directory:
Codice:
set(SDL2_INCLUDE_DIRS "$ENV{MINGW_INC}")
target_include_directories(project_name PUBLIC ${SDL2_INCLUDE_DIRS})
 
Ultima modifica:

JDany

Utente Attivo
411
23
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
Stasera dovrei aver tempo, e compilo sul mio. Ti dico quale flag ti stai perdendo.

Che versione usi di MinGw?
Post automaticamente unito:

Dovresti pubblicare il CMakeLists.txt.
Inoltre, stando a quanto dici in un precedente post, ho visto che non linki la libreria corretta: stai utilizzando MinGw, quindi compili con gcc, dovresti linkare -ldl .

Non ho più tutto il progetto, prima di riscaricare tutto attendo tuoi aggiornamenti in merito; se hai ancora difficoltà scarico la nuova versione di GLFW e glad e compilo un codice di esempio.

Qualche ulteriore nota.
Assicurati che il percorso agli header sia corretto; io utilizzo le variabili d'ambiente (la lib è SDL2 in questo caso) con il path alla directory:
Codice:
set(SDL2_INCLUDE_DIRS "$ENV{MINGW_INC}")
target_include_directories(project_name PUBLIC ${SDL2_INCLUDE_DIRS})
Si funziona tutto.

Comunque mi sento stupido, il motivo per cui non trovava le definizioni di funzioni è perché non riusciva ad aprire correttamente il file " Glad.c".

Scusa di averti fatto perdere tempo e ho cambiato, ho iniziato a compilare con il compilare di Vs, perché ho letto che c'erano dei vantaggi nell'usare questo compilatore con librerie Opengl.

Come librerie Opengl utilizzo GLFW3, sono quelle che vengono aggiornate più spesso, e Glad.
 

Entra

oppure Accedi utilizzando