2013-07-09 13 views
5

मैंने glfw3 संकलित किया है और cmake का उपयोग करके शामिल उदाहरण और बिना किसी समस्या के बनाये हैं। मेरी पहली परियोजना लिखने पर। ओपनगल और ग्लूफ के लिए नया होने के नाते, और सी और सेमेक के साथ अनुभवहीन, मैं उदाहरण परियोजनाओं को समझने के लिए संघर्ष कर रहा हूं, या यहां तक ​​कि कौन सी लाइब्रेरी लिंक और/या संकलक पैरामीटर को मेरे प्रोजेक्ट में उपयोग करने के लिए उपयोग कर रहा है।मैं लिनक्स पर अपनी glfw3 प्रोजेक्ट कैसे बना सकता हूं?

मान लें कि मेरे पास एक फ़ाइल के साथ सिर्फ एक फ़ोल्डर है, boing.c अभी के लिए। मैं इसे कैसे संकलित करूं?

बस gcc -lglfw3 -lm -lGL -lGLU boing.c चल रहा है, पाप और एटान 2 से शुरू होने वाले अपरिभाषित संदर्भों की एक दीवार देता है, इसके बाद विभिन्न ग्ल और ग्लफू सामान होते हैं। मैं क्या खो रहा हूँ?

मैं मेकफ़ाइल लिखने के बारे में कैसे जाऊं? क्या कोई सेमेक टेम्पलेट या नमूना है, कि मुझे समझ में नहीं आया कि इसका उपयोग कैसे किया जाए या अनुकूलित किया जाए? क्या कोई glfw3 का उपयोग कर ओपन सोर्स प्रोजेक्ट (या बेहतर, एक छोटा सा उदाहरण या टेम्पलेट) के बारे में जानता है - तो मैं चारों ओर देख सकता हूं?

मुझे अनुमान है कि सेमेक सबसे अच्छा होगा, जब मैं किसी बिंदु पर बहु-मंच जाना चाहता हूं। लेकिन मैं सिर्फ * * बिना किसी परेशानी के संकलन के लिए कैसे प्राप्त करूं, तो मैं कुछ ट्यूटोरियल पर शुरू कर सकता हूं ..?

मैं 32 बिट उबंटू रायरिंग का उपयोग कर एक मध्यम नोब हूं। अभी के लिए विम का उपयोग कर।

+0

आप त्रुटियों आप हो रही है पोस्ट कर सकते हैं। – iKlsR

+0

@iKlsR यहां त्रुटियां हैं: http://pastebin.com/0HjYNpkS इस दौरान मैंने निमरोड सीखना शुरू कर दिया। बहुत बढ़िया और सुरुचिपूर्ण भाषा। – Jostein

उत्तर

9

मैं दृढ़ता से सीएमके स्थापित करने का सुझाव दूंगा यदि यो आप पहले से नहीं है

भले ही मैं सीएमके का उपयोग करने का सुझाव देता हूं, लेकिन यह समझने के लिए सबसे आसान उपकरण नहीं है, लेकिन अपनी खुद की फाइल बनाने से कहीं बेहतर है।

boing.c (जो btw, जो लोग अनजान हैं के लिए glwf द्वारा प्रदान की एक उदाहरण है) संकलन करने के लिए glfw रूट निर्देशिका में रहो और टाइप cmake . तो make

और वह उदाहरण के सभी बनाने चाहिए।

लेकिन, एक सरल CMake फ़ाइल बनाने के लिए कैसे जवाब देने के लिए, यहां एक उदाहरण CMakeLists.txt का निर्माण करना है boing.c:

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) 

की निर्देशिका संरचना ऊपर

boing_project/ 
    boing.c 
    CMakeLists.txt 

हालांकि होगा , यह जवाब नहीं देता है कि आप उन सभी त्रुटियों को क्यों प्राप्त कर रहे हैं।

अपने त्रुटियों का कारण है कि आप गलत क्रम में जीसीसी के लिए तर्क की आपूर्ति की,
gcc boing.c -lglfw3 -lm -lGL -lGLU
या बेहतर कोशिश
gcc boing.c -o boing -Wall -lglfw3 -lm -lGL -lGLU

अपने प्रश्न का उत्तर देने है: वहाँ किसी भी ओपन सोर्स प्रोजेक्ट का उपयोग कर रहे हैं glfw जो आप देख सकते हैं? बस गिटूब पर glfw के लिए खोजें और आपको बहुत कुछ मिलेगा।

+1

और यदि आप, मेरे जैसे, सोच रहे हैं कि ऑर्डर महत्वपूर्ण क्यों है यह जांचें: http://stackoverflow.com/questions/45135/linker-order-gcc – paldepind

12

आप इस

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

#REF तरह पुस्तकालय शामिल करने की जरूरत: http://www.blogosfera.co.uk/2013/07/how-to-build-install-glfw-3-and-use-it-in-a-linux-project/

क्षमा करें मैं अंग्रेजी में अच्छा नहीं हूं

+0

धन्यवाद, लेकिन नहीं, यह अभी भी मुझे एक ही त्रुटि देता है! हो सकता है कि किसी प्रकार का बग है .. – Jostein

+3

यह उत्तर इस मामले में सही है कि यह जानकारी देता है जिसे हमें लिनक्स, जैसे कि ज़ी और एक्स्रांडर पर अतिरिक्त पुस्तकालयों के खिलाफ जोड़ने की आवश्यकता है। हालांकि मुझे ऑर्डर के बारे में निश्चित नहीं है, मेरे पास glfw3 के बाद जीएल है, यह नहीं पता कि वह माथेर हैं या नहीं। इसके बारे में अधिक जानकारी यहां मिल सकती है: http://stackoverflow.com/questions/17768008/how-to-build-install-glfw-3-and-use-it-in-a-linux-project/17772217 –

+0

वन रॉबर्ट के लिए बिंदु, अनुक्रम मायने रखता है ... – ranjan

0

मैं निम्नलिखित झंडे का उपयोग कर glfw परियोजनाओं के निर्माण के लिए प्रबंधन: संकलक झंडे:

-c -Wall 

लिंकर झंडे:

-lglfw3 -lGLEW -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -ldl -lGL -lm -lpthread 
संबंधित मुद्दे