Perhatikan bahwa Anda tidak memerlukan -l
sebanyak itu s jika Anda menginstal glfw dengan BUILD_SHARED_LIBS
pilihan. (Anda dapat mengaktifkan opsi ini dengan menjalankan ccmake
pertama).
Lewat sini sudo make install
akan menginstal pustaka bersama di /usr/local/lib/libglfw.so
.Anda kemudian dapat mengkompilasi file contoh dengan sederhana:
g++ main.cpp -L /usr/local/lib/ -lglfw
Kemudian jangan lupa untuk menambahkan /usr/local/lib/ ke jalur pencarian untuk pustaka bersama sebelum menjalankan program Anda. Hal ini dapat dilakukan dengan menggunakan:
export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}
Dan Anda dapat memasukkannya ke dalam ~/.bashrc
Anda jadi Anda tidak perlu mengetiknya sepanjang waktu.
Langkah 1:Memasang GLFW 3 di sistem Anda dengan CMAKE
Untuk instalasi ini, saya menggunakan KUbuntu 13.04, 64bit.
Langkah pertama adalah mengunduh versi terbaru (dengan asumsi versi di masa mendatang berfungsi serupa) dari www.glfw.org, mungkin menggunakan tautan ini.
Langkah selanjutnya adalah mengekstrak arsip, dan membuka terminal. cd
ke direktori glfw-3.X.X dan jalankan cmake -G "Unix Makefiles"
Anda mungkin memerlukan hak istimewa yang lebih tinggi, dan mungkin juga perlu menginstal dependensi build terlebih dahulu . Untuk melakukannya, coba sudo apt-get build-dep glfw
atau sudo apt-get build-dep glfw3
atau lakukan secara manual , seperti yang saya lakukan menggunakan sudo apt-get install cmake xorg-dev libglu1-mesa-dev
... Mungkin ada lib lain yang Anda butuhkan seperti perpustakaan pthread ... Sepertinya saya sudah memilikinya. (Lihat opsi -l yang diberikan ke tahap penaut g++, di bawah.)
Sekarang Anda dapat mengetikkan make
lalu make install
, yang mungkin mengharuskan Anda untuk sudo
pertama.
Oke, Anda harus mendapatkan beberapa keluaran verbose pada tiga tahap CMake terakhir, memberi tahu Anda apa yang telah dibuat atau di mana penempatannya. (Dalam /usr/include
, misalnya.)
Langkah 2:Buat program pengujian dan kompilasi
Langkah selanjutnya adalah menjalankan vim ("apa?! vim?!" Anda berkata) atau IDE/editor teks pilihan Anda... Saya tidak menggunakan vim, saya menggunakan Kate, karena saya menggunakan KUbuntu 13.04... Bagaimanapun, unduh atau salin program pengujian dari sini (di bagian bawah halaman) dan simpan, keluar.
Sekarang kompilasi menggunakan g++ -std=c++11 -c main.cpp
- tidak yakin apakah c++11 diperlukan tapi saya menggunakan nullptr
jadi, saya membutuhkannya... Anda mungkin perlu memutakhirkan gcc ke versi 4.7, atau versi 4.8 yang akan datang... Info tentang itu di sini.
Kemudian perbaiki kesalahan Anda jika Anda mengetik program dengan tangan atau mencoba menjadi "terlalu pintar" dan ada yang tidak berhasil... Kemudian tautkan menggunakan monster ini! g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
Jadi Anda lihat, di bagian "instal build dependencies", Anda mungkin juga ingin memeriksa apakah Anda memiliki GL, GLU, X11 Xxf86vm (apa pun itu) Xrandr posix-thread dan Xi (apa pun itu) pengembangan perpustakaan diinstal juga. Mungkin perbarui driver grafis Anda juga, menurut saya GLFW 3 mungkin memerlukan OpenGL versi 3 atau lebih tinggi? Mungkin ada yang bisa konfirmasi? Anda mungkin juga perlu menambahkan opsi linker -ldl -lXinerama -lXcursor
untuk membuatnya berfungsi dengan benar jika Anda mendapatkan referensi yang tidak ditentukan ke dlclose
(kredit ke @user2255242).
Dan, ya, saya benar-benar membutuhkan -l
sebanyak itu s!
Langkah 3:Selesai, semoga harimu menyenangkan!
Semoga informasi ini benar dan semuanya berhasil untuk Anda, dan Anda senang menulis program pengujian GLFW. Juga semoga panduan ini telah membantu, atau akan membantu, beberapa orang di masa depan yang sedang berjuang seperti saya hari ini kemarin!
Omong-omong, semua tag adalah hal yang saya cari di stackoverflow untuk mencari jawaban yang tidak ada. (Sampai sekarang.) Semoga itu yang Anda telusuri jika Anda berada di posisi yang sama dengan saya.
Catatan Penulis:
Ini mungkin bukan ide yang bagus. Metode ini (menggunakan sudo make install) mungkin berbahaya bagi sistem Anda. (Lihat Jangan Hancurkan Debian)
Idealnya saya, atau orang lain, harus mengusulkan solusi yang tidak hanya menginstal file lib dll ke direktori default sistem karena ini harus dikelola oleh manajer paket seperti apt
, dan hal itu dapat menyebabkan konflik dan merusak sistem pengelolaan paket Anda.
Lihat "jawaban 2020" baru untuk solusi alternatif.
Saya menyelesaikannya dengan cara ini
File pkg-config menjelaskan semua flag waktu kompilasi dan waktu tautan serta dependensi yang diperlukan untuk menggunakan pustaka.
pkg-config --static --libs glfw3
menunjukkan itu kepada saya
-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
Saya tidak tahu apakah semua lib ini sebenarnya diperlukan untuk kompilasi tetapi bagi saya itu berfungsi...