GNU/Linux >> Linux Esercitazione >  >> Linux

Come costruire e installare GLFW 3 e usarlo in un progetto Linux

Nota che non hai bisogno di così tanti -l S se installi glfw con BUILD_SHARED_LIBS opzione. (Puoi abilitare questa opzione eseguendo ccmake prima).

In questo modo sudo make install installerà la libreria condivisa in /usr/local/lib/libglfw.so .Puoi quindi compilare il file di esempio con un semplice:

g++ main.cpp -L /usr/local/lib/ -lglfw

Quindi non dimenticare di aggiungere /usr/local/lib/ al percorso di ricerca delle librerie condivise prima di eseguire il programma. Questo può essere fatto usando:

export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}

E puoi inserirlo nel tuo ~/.bashrc quindi non devi digitarlo tutto il tempo.


Passaggio 1:installazione di GLFW 3 sul tuo sistema con CMAKE

Per questa installazione, stavo usando KUbuntu 13.04, 64 bit.

Il primo passo è scaricare l'ultima versione (supponendo che le versioni future funzionino in modo simile) da www.glfw.org, probabilmente usando questo link.

Il prossimo passo è estrarre l'archivio e aprire un terminale. cd nella directory glfw-3.X.X ed eseguire cmake -G "Unix Makefiles" potresti aver bisogno di privilegi elevati e potresti anche dover installare prima le dipendenze di build . Per farlo, prova sudo apt-get build-dep glfw o sudo apt-get build-dep glfw3 o fallo manualmente , come ho fatto usando sudo apt-get install cmake xorg-dev libglu1-mesa-dev ... Potrebbero esserci altre librerie di cui hai bisogno come le librerie pthread ... Apparentemente le avevo già. (Vedi le opzioni -l fornite alla fase del linker g++, di seguito.)

Ora puoi digitare make e poi make install , che probabilmente richiederà sudo prima.

Ok, dovresti ottenere un output dettagliato sulle ultime tre fasi di CMake, che ti dice cosa è stato costruito o dove è stato posizionato. (In /usr/include , ad esempio.)

Passaggio 2:crea un programma di test e compila

Il prossimo passo è avviare vim ("cosa?! vim?!" dici) o il tuo IDE / editor di testo preferito... Non ho usato vim, ho usato Kate, perché sono su KUbuntu 13.04... In ogni caso, scarica o copia il programma di test da qui (in fondo alla pagina) e salva, esci.

Ora compila usando g++ -std=c++11 -c main.cpp - non sono sicuro che c++11 sia richiesto ma ho usato nullptr quindi, ne avevo bisogno... Potrebbe essere necessario aggiornare il tuo gcc alla versione 4.7 o alla prossima versione 4.8... Informazioni qui.

Quindi correggi i tuoi errori se hai digitato il programma a mano o hai cercato di essere "troppo intelligente" e qualcosa non ha funzionato... Quindi collegalo usando questo mostro! g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi Quindi vedi, nella parte "installa build dependencies", potresti anche voler verificare di avere GL, GLU, X11 Xxf86vm (qualunque cosa sia) Xrandr posix-thread e Xi (qualunque cosa sia) development anche le librerie installate. Forse aggiorna anche i tuoi driver grafici, penso che GLFW 3 potrebbe richiedere OpenGL versione 3 o successiva? Forse qualcuno può confermarlo? Potrebbe anche essere necessario aggiungere le opzioni del linker -ldl -lXinerama -lXcursor per farlo funzionare correttamente se ricevi riferimenti non definiti a dlclose (accredito a @user2255242).

E sì, avevo davvero bisogno di così tanti -l s!

Passaggio 3:hai finito, buona giornata!

Spero che queste informazioni siano corrette e che tutto abbia funzionato per te e che ti sia piaciuto scrivere il programma di test GLFW. Spero anche che questa guida abbia aiutato, o aiuterà, alcune persone in futuro che stavano lottando come me oggi ieri!

A proposito, tutti i tag sono le cose che ho cercato su StackOverflow cercando una risposta che non esisteva. (Fino ad ora.) Spero che siano ciò che cercavi se ti trovassi in una posizione simile alla mia.

Nota dell'autore:

Questa potrebbe non essere una buona idea. Questo metodo (usando sudo make install) potrebbe essere pericoloso per il tuo sistema. (Vedi Non rompere Debian)

Idealmente io, o qualcun altro, dovremmo proporre una soluzione che non installi semplicemente i file lib ecc nelle directory predefinite del sistema in quanto queste dovrebbero essere gestite da gestori di pacchetti come apt e ciò potrebbe causare un conflitto e interrompere il sistema di gestione dei pacchetti.

Consulta la nuova "risposta 2020" per una soluzione alternativa.


Ho risolto in questo modo

Un file pkg-config descrive tutti i flag e le dipendenze necessari in fase di compilazione e collegamento necessari per utilizzare una libreria.

pkg-config --static --libs glfw3

me lo mostra

-L/usr/local/lib -lglfw3 -lrt -lXrandr -lXinerama -lXi -lXcursor -lGL -lm -ldl -lXrender -ldrm -lXdamage -lX11-xcb -lxcb-glx -lxcb-dri2 -lxcb-dri3 -lxcb-present -lxcb-sync -lxshmfence -lXxf86vm -lXfixes -lXext -lX11 -lpthread -lxcb -lXau -lXdmcp  

Non so se tutte queste librerie siano effettivamente necessarie per la compilazione ma per me funziona...


Linux
  1. Come installare e utilizzare telnet su Kali Linux

  2. Come installare e utilizzare lo schermo Linux?

  3. Come installare e utilizzare SSHFS su Linux

  4. Come installare e utilizzare Flatpak in Linux

  5. Come installare e utilizzare Traceroute in Linux

Come installare e utilizzare il comando Ping in Linux

Come installare e utilizzare Telnet su sistemi Linux

Come installare e utilizzare ZSH Shell in Linux

Come installare e utilizzare il comando fd in Linux

Come installare e utilizzare Nu Shell su Linux

Come installare e utilizzare Snapcraft su Linux