2013-07-09 41 views
5

glmakw3 ve dahil edilen örnekleri cmake kullanarak derledim ve sorunsuz bir şekilde yapıyorum. İlk projemi yazmak üzerine. Opengl ve glfw için yeni olmak ve C ve cmake ile deneyimsiz olmak, örnek yapı dosyalarını anlamak için mücadele ediyorum, hatta projemde kullanmak için hangi kütüphanelerin link ve/veya derleyici parametrelerini kullanacağım.Glfw3 projemi Linux'ta nasıl oluştururum?

Şimdilik şimdilik bir dosya, boing.c ile sadece bir klasör var diyelim. Nasıl derlerdim?

Sadece gcc -lglfw3 -lm -lGL -lGLU boing.c kullanıyorsunuz, sin ve atan2 ile başlayan, ardından çeşitli gl ve glfw maddeleri içeren tanımlanmamış referansların bir duvarını verir. Neyi kaçırıyorum?

Makefile yazmaktan nasıl bahsederim? Bir cmake şablonu veya örneği var mı, sadece nasıl kullanılacağını veya uyum sağladığını anlamadım mı? Glfw3 kullanarak bir açık kaynak projesi (veya daha iyi, küçük bir örnek veya şablon) hakkında bilen var mı?

Bir noktada çok platformlu gitmek istediğimde cmake en iyisi olacağını tahmin ediyorum. Ama çok fazla güçlük çekmeden derlemek için * * şeyini nasıl alabilirim, böylece bazı öğreticilerde başlayabilirim ..?

32bit Ubuntu'yu kullanarak ılımlı bir noob'um. Şimdilik sadece Vim kullanıyorum.

+0

Eğer alıyorsanız hataları gönderebilirsiniz. – iKlsR

+0

@iKlsR İşte hatalar: http://pastebin.com/0HjYNpkS Bunun yerine Nimrod'u öğrenmeye başladım. Müthiş ve zarif bir dil. – Jostein

cevap

9

Eğer CMake'i kurmayı şiddetle öneririm daha önce yapmadım.

CMake kullanmayı önersem de, anlaşılması en kolay araç değil, kendi make dosyalarınızı yapmaktan çok daha iyidir.

GLFW kök dizininde olun ve cmake . sonra make

yazın Ve bu örneklerin hepsi inşa etmeliyiz (Btw, habersiz olanlar için glwf tarafından sağlanan bir örnektir) boing.c derlemek için.

cmake_minimum_required(VERSION 2.8) 

project(BOING_PROJECT) # this is case sensitive 

###################################### 
# finds OpenGL, GLU and X11 
find_package(OpenGL REQUIRED) 
if(NOT OPENGL_FOUND) 
    message("ERROR: OpenGL not found") 
endif(NOT OPENGL_FOUND) 
set(GL_LIBRARY GL GLU X11) 

add_executable(boing boing.c) 

# linking "glfw" and not "glfw3" 
# assumes that glfw was built with BUILD_SHARED_LIBS to ON 
target_link_libraries(boing glfw ${GL_LIBRARY} m) 

dizin yapısı yukarıda Ancak

boing_project/ 
    boing.c 
    CMakeLists.txt 

olacaktır: boing.c

Ama basit CKağıt dosyasını nasıl cevap, burada inşa etmek bir örnek CMakeLists.txt olduğunu Bu, tüm bu hataları neden aldığınızı cevaplamıyor.

senin hataların nedeni sen
gcc boing.c -o boing -Wall -lglfw3 -lm -lGL -lGLU

sorunuzu cevaplamak için
gcc boing.c -lglfw3 -lm -lGL -lGLU
veya daha iyi denemek yanlış sırada GCC argümanlar verilen olmasıdır: kullanan herhangi bir açık kaynak projeleri vardır glfw içinden bakabilirsiniz? Sadece github üzerinde glfw arayın ve bol bulabilirsiniz.

+1

Ve eğer benim gibi, siparişin neden önemli olduğunu merak ediyorsanız, şunu kontrol edin: http://stackoverflow.com/questions/45135/linker-order-gcc – paldepind

12

Bu

-lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi

# BAŞV gibi kütüphane dahil etmek gerekir: http://www.blogosfera.co.uk/2013/07/how-to-build-install-glfw-3-and-use-it-in-a-linux-project/

Maalesef ingilizcede iyi değilim

+0

Teşekkürler, ama hayır, hala bana aynı hataları veriyor! Belki de bir çeşit hata var .. – Jostein

+3

Bu cevap, Xi ve Xrandr gibi linux üzerindeki ek kütüphanelere karşı bağlamamız gereken bilgileri vermesi durumunda doğrudur. Sipariş hakkında emin değilim, glfw3 sonra GL var, o matematikçiler bilmiyorum. Bununla ilgili daha fazla bilgiyi şu adreste bulabilirsiniz: http://stackoverflow.com/questions/17768008/how-to-build-install-glfw-3-and-use-it-in-a-linux-project/17772217 –

+0

One Robert için nokta, dizi önemli ... – ranjan

0

aşağıdaki bayraklarını kullanarak GLFW projeler inşa etmek yönetmek: Derleyici bayrakları:

-c -Wall 

Bağlayıcı bayrakları:

-lglfw3 -lGLEW -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -ldl -lGL -lm -lpthread 
İlgili konular