GLFW 3 का निर्माण और स्थापना कैसे करें और इसे लिनक्स प्रोजेक्ट में उपयोग करें


95

GLFW3

कल रात मैं देर से काम कर रहा था स्रोत से लिनक्स के लिए GLFW 3 पैकेज बनाने की कोशिश कर रहा था। इस प्रक्रिया में मुझे बहुत लंबा समय लगा, कुल मिलाकर लगभग 3 घंटे, आंशिक रूप से क्योंकि मैं सीएमके से अपरिचित हूं, और आंशिक रूप से क्योंकि मैं जीएलएफडब्ल्यू से अपरिचित था।

मुझे उम्मीद है कि यह पोस्ट आपको मेरे द्वारा कल की गई कठिनाई से बचाएगा! मुझे लगा कि मुझे एक संक्षिप्त लिखना चाहिए, और उम्मीद है कि आप अपने जीवन के कई घंटे बचाए ...

#Glfw IRC चैनल पर "urraka", "b6" और "niklas" के लिए धन्यवाद, मुझे glfw संस्करण 3.0.1 काम करने में सक्षम है।

यह पता चला है कि यह एक तुच्छ प्रक्रिया नहीं है (निश्चित रूप से मेरे लिए नहीं, मैं कोई विशेषज्ञ नहीं हूं) क्योंकि glfw3 के बारे में वेब पर बहुत अधिक प्रलेखन नहीं है, विशेष रूप से इसे CMake के साथ स्थापित करने के बारे में।

मुझे इसे एक प्रश्न और उत्तर अनुभाग में विभाजित करने के लिए कहा गया था, और इसलिए मैंने ऐसा किया है, और उत्तर भाग अब नीचे हैं।

क्या आप GLFW के अनुरक्षक हैं, या GLFW टीम के सदस्य हैं?

यदि GLFW3 के किसी भी अनुरक्षक ने इसे देखा है, तो मेरा संदेश उन्हें कृपया अपनी वेबसाइट पर "विंडोज, मैक ओएस एक्स और लिनक्स पर जीएलएफडब्ल्यू 3 स्थापित करने" अनुभाग जोड़ें! GLFW के साथ प्रोग्राम लिखना काफी आसान है, क्योंकि ऑनलाइन प्रलेखन काफी अच्छा है, सभी उपलब्ध वर्गों और मॉड्यूल का एक त्वरित स्कैन और आप जाने के लिए तैयार होंगे। यहां चित्रित एक परीक्षण परियोजना का उदाहरण भी बहुत अच्छा है। मुझे जो दो मुख्य समस्याएं मिलीं, पहली यह कि मैंने अपने सिस्टम पर GLFW3 की स्थापना कैसे की, और दूसरी बात कि मैं GLFW3 प्रोजेक्ट कैसे बनाऊं? गैर-विशेषज्ञ के लिए ये दोनों बातें शायद बिल्कुल स्पष्ट नहीं हैं।

संपादित करें

आज एक संक्षिप्त रूप था (दिनांक: 2014-01-14) ऐसा लग रहा है कि जब मैंने आखिरी बार देखा था तब से GLFW वेबसाइट में भारी बदलाव हुए हैं और अब GLFW और GLFW के साथ कार्यक्रमों को संकलित करने पर एक खंड है, जो मुझे लगता है कि नया है।


इसे यहाँ रखने के लिए धन्यवाद - जाहिर है कि बहुत सारा काम इसमें चला गया है। क्या आप इसे एक प्रश्न और उत्तर में विभाजित करना चाहेंगे? आप अपने खुद के सवाल का अपना जवाब जोड़ सकते हैं और इसे सही के रूप में चिह्नित कर सकते हैं।
फ्रेजर

@Fraser हाँ, अगर आपको लगता है कि यह बेहतर होगा
user3728501

1
मुझे भी वह पता हैं। मैं GLFW को बहुत पसंद करता हूं, लेकिन वास्तव में निराश था कि मैक के तहत v3 को कैसे संकलित किया जाए, आदि के बारे में कोई दस्तावेज नहीं मिला,
user18490

1
@ user18490 हाँ मुझे इस तरह का आश्चर्य हुआ, क्योंकि GLFW "एक बेहतर ग्लूट" लगता है। मुझे यकीन है कि उन्होंने अपने प्रलेखन में उल्लेख किया है कि ग्लूट केवल सीखने के लिए अच्छा है और यदि आप एक पेशेवर विंडो के लिए चाहते हैं, तो GLFW का उपयोग करें। तो आश्चर्य की बात यह है कि वे आपको बताते हैं कि यह कितना अच्छा है, लेकिन आपको यह नहीं बताना चाहिए कि इसे कैसे स्थापित किया जाए! (एसएफएमएल के विपरीत)
user3728501

@ एडवर्ड बर्ड। अंत में मुझे GLFW: scratchapixel.com/lessons/3d-basic-lessons/lesson-2-get-started/…
2318

जवाबों:


125

चरण 1: CMAKE के साथ अपने सिस्टम पर GLFW 3 को स्थापित करना

इस स्थापना के लिए, मैं KUbuntu 13.04, 64bit का उपयोग कर रहा था।

पहला चरण www.glfw.org से नवीनतम संस्करण को डाउनलोड करना है (भविष्य के काम में समान रूप से काम करना) , शायद इस लिंक का उपयोग करना ।

अगला कदम संग्रह को निकालना है, और एक टर्मिनल खोलना है। cdglfw-3.XX निर्देशिका में और चलाने के लिए cmake -G "Unix Makefiles"आपको विशेषाधिकारों की आवश्यकता हो सकती है, और आपको पहले निर्माण निर्भरताएं स्थापित करने की आवश्यकता हो सकती है । ऐसा करने के लिए कोशिश sudo apt-get build-dep glfw या sudo apt-get build-dep glfw3 या मैन्युअल रूप से ऐसा , जैसा कि मैंने का उपयोग कर किया था sudo apt-get install cmake xorg-dev libglu1-mesa-dev... इस तरह के pthread पुस्तकालयों के रूप में अन्य libs आप की आवश्यकता हो सकती है ... जाहिर है मैं उन्हें पहले से ही था। (जी ++ लिंकर चरण के नीचे दिए गए -l विकल्प देखें।)

अब आप टाइप कर सकते हैं makeऔर फिर make install, जिसे संभवतः आपको sudoपहले करना होगा।

ठीक है, आपको अंतिम तीन सीएमके चरणों में कुछ वर्बोज़ आउटपुट मिलना चाहिए, जो आपको बताएंगे कि क्या बनाया गया है या इसे कहाँ रखा गया है। ( /usr/includeउदाहरण के लिए)

चरण 2: एक परीक्षण कार्यक्रम बनाएं और संकलित करें

अगले कदम के लिए विम ("क्या? वीम ?!" आप कहते हैं) या आपके पसंदीदा आईडीई / पाठ संपादक को आग लगाना है ... मैंने विम का उपयोग नहीं किया, मैंने केट का इस्तेमाल किया, क्योंकि मैं 13.04 पर हूँ ... वैसे भी, परीक्षण कार्यक्रम को यहां से (पेज के नीचे) डाउनलोड करें या कॉपी करें और सहेजें, बाहर निकलें।

अब संकलन का उपयोग करें g++ -std=c++11 -c main.cpp- सुनिश्चित नहीं हैं कि अगर c ++ 11 की आवश्यकता है, लेकिन मैंने इसका उपयोग किया nullptrहै, तो मुझे इसकी आवश्यकता है ... आपको अपने gcc को संस्करण 4.7 में या आगामी संस्करण 4.8 में अपग्रेड करने की आवश्यकता हो सकती है ... जानकारी यहाँ पर है ।

फिर अपनी त्रुटियों को ठीक करें यदि आपने कार्यक्रम को हाथ से टाइप किया या "बहुत चालाक" होने की कोशिश की और कुछ काम नहीं किया ... तो इसे इस राक्षस का उपयोग करके लिंक करें! g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXiतो आप देखते हैं, "स्थापित निर्भरताएँ स्थापित करें" भाग में, आप यह भी जांचना चाह सकते हैं कि आपके पास GL, GLU, X11 Xxf86vm (जो कुछ भी है) Xrandr पॉज़िक्स-थ्रेड और शी (जो कुछ भी है) विकास पुस्तकालय स्थापित हैं। शायद अपने ग्राफिक्स ड्राइवरों को भी अपडेट करें, मुझे लगता है कि GLFW 3 को ओपनजीएल संस्करण 3 या उच्चतर की आवश्यकता हो सकती है? शायद कोई इसकी पुष्टि कर सकता है? -ldl -lXinerama -lXcursorयदि आपको अपरिभाषित संदर्भ मिल रहे हैं dlclose(@ user2255242 पर क्रेडिट) तो सही ढंग से काम करने के लिए आपको लिंकर विकल्प जोड़ने की आवश्यकता हो सकती है ।

और, हां, मुझे वास्तव में बहुत से लोगों की ज़रूरत थी -l!

चरण 3: आप समाप्त कर चुके हैं, आपका दिन शुभ हो!

उम्मीद है कि यह जानकारी सही थी और आपके लिए सब कुछ काम कर गया, और आपको GLFW परीक्षण कार्यक्रम लिखने में मज़ा आया। इसके अलावा, उम्मीद है कि इस गाइड ने मदद की है, या मदद करेगा, भविष्य में कुछ लोग जो कल मैं आज संघर्ष कर रहे थे!

वैसे, सभी टैग वे चीजें हैं जिन्हें मैंने स्टैकओवरफ्लो पर खोजा था जो एक उत्तर की तलाश में थे जो मौजूद नहीं थे। (अब तक।) उम्मीद है कि वे वही हैं जो आपने खोजा था यदि आप खुद के समान स्थिति में थे।

लेखक नोट:

यह एक अच्छा विचार नहीं हो सकता है। यह विधि (sudo make install का उपयोग करके) आपके सिस्टम के लिए हानिकारक हो सकती है। (डिएन ब्रेक न करें)

आदर्श रूप से I, या किसी और को, एक समाधान का प्रस्ताव करना चाहिए जो सिस्टम डिफॉल्ट निर्देशिकाओं में सिर्फ लिबास फाइल आदि को इंस्टॉल नहीं करता है क्योंकि इन्हें पैकेज मैनेजरों द्वारा प्रबंधित किया जाना चाहिए apt, और ऐसा करने से विरोध पैदा हो सकता है और आपका पैकेज मैनेजमेंट सिस्टम टूट सकता है।

वैकल्पिक समाधान के लिए नया "2020 उत्तर" देखें।


मैंने घंटों यह जानने की कोशिश की। इस जवाब ने मेरे लिए काम किया: Ubuntu 13.04, x64। NetBeans C ++ IDE (प्रोजेक्ट गुण में लिंकर लाइन जोड़ें-> बिल्ड-> लिंकर-> लाइब्रेरी-> विकल्प जोड़ें-> अन्य विकल्प - अन्यथा निर्देशों का पालन करें शब्दशः)
स्कॉट ड्रू

जाहिरा तौर पर (GLFW 3.0.3 के साथ) कुछ का उपयोग करता है powताकि -lmसंकलन विकल्पों में इसे जोड़ा जाए ।
वन काट्स

1
एडवर्ड, धन्यवाद। मुझे इस विवेक-जांच की आवश्यकता थी कि सभी -l आवश्यकताओं का मतलब यह नहीं था कि मैं कुछ गलत कर रहा था।
गलत

3
यार तुम फू हो !!!!!! GENIUS !!!! आपको 3 घंटे मिले, मुझे 3 दिन ऐसा करने की कोशिश हुई (वास्तव में शोध करना शुरू करने के लिए, ग्लूट इतिहास के बारे में पढ़ना और इतने पर, वैसे भी) आपको बहुत बहुत धन्यवाद *** बहुत धन्यवाद; मैं यह भी सलाह देना चाहूंगा कि मैं glfw पेज पढ़ूं, अपने ट्यूटोरियल के बाद काम नहीं कर सकता, जब मैंने यह पाया तो लगभग छोड़ रहा था और वे आपको इतना सरल और सीधा नहीं समझाते। बहुत बढ़िया काम आपने यहाँ किया !!
विक्टर आर। ओलिवेरा

1
एक स्वच्छ लिनक्स मिंट पर मुझे इन पैकेजों को स्थापित करना था:sudo apt-get update && sudo apt-get install build-essential libevent-pthreads-2.0.5 doxygen xorg-dev libglu1-mesa-dev
लेनर होयट

18

मैंने इसे इस तरह से हल किया

एक pkg-config फ़ाइल में लाइब्रेरी का उपयोग करने के लिए आवश्यक सभी संकलन-समय और लिंक-टाइम फ़्लैग और निर्भरता का वर्णन है।

pkg-config --static --libs glfw3

मुझे वह दिखाता है

-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  

मुझे नहीं पता कि ये सभी लिबास वास्तव में संकलन के लिए आवश्यक हैं लेकिन मेरे लिए यह काम करता है ...


3
यह उत्तर अवश्य देखना चाहिए। मुझे पहले pkg-config के बारे में पता नहीं था। लेकिन आज से मैं इसे अंत तक उपयोग करूंगा, क्योंकि यह मुझे किसी भी तरह की लिंकिंग निर्भरता समस्या को हल करने में मदद करेगा। इस तरह के एक भयानक जवाब के लिए धन्यवाद।
सायन भट्टाचार्जी

18

ध्यान दें कि -lयदि आप BUILD_SHARED_LIBSविकल्प के साथ glfw स्थापित करते हैं तो आपको कई s की आवश्यकता नहीं है । (आप ccmakeपहले चलाकर इस विकल्प को सक्षम कर सकते हैं )।

यह तरीका sudo make installसाझा लाइब्रेरी को इनस्टॉल करेगा /usr/local/lib/libglfw.so। आप एक सरल के साथ उदाहरण फ़ाइल संकलित कर सकते हैं:

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

फिर अपने कार्यक्रम को चलाने से पहले साझा पुस्तकालयों के लिए खोज पथ के लिए / usr / स्थानीय / देय / जोड़ने के लिए मत भूलना। इसका उपयोग करके किया जा सकता है:

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

और आप इसे अपने ~/.bashrcपास रख सकते हैं, इसलिए आपको इसे हर समय टाइप करने की आवश्यकता नहीं है।


1
यह जानकारी उन लोगों के लिए वास्तव में महत्वपूर्ण है जो संकलन और चलाने के लिए उपयोग टर्मिनल के बजाय एक आईडीई सेटअप करना चाहते हैं; क्या आप इस बारे में अधिक जानकारी दे सकते हैं कि यह कैसे करना है? मैंने कोशिश की लेकिन सफल नहीं हुआ
विक्टर आर। ओलिवेरा

Noob यहाँ! मुझे पता है कि यह थोड़ा पुराना है, लेकिन इसने वास्तव में मेरी मदद की। क्या कोई समझा सकता है (या किसी को समझाने के लिए लिंक) क्यों साझा लाइब्रेरी का उपयोग करने से यह हो जाएगा इसलिए हमें उन सभी अन्य पुस्तकालयों को लिंक करने की आवश्यकता नहीं है, जिनमें से कई को साझा की गई फ़ाइल भी थीं? साथ ही, मुझे संकलन करने के बाद LD_LIBRARY_PATH वैरिएबल सेट करना पड़ा , या जब मैं अपने नए संकलित निष्पादन योग्य को चलाने का प्रयास करता हूं तो मुझे गन्नू त्रुटियों का प्रकोप का सामना करना पड़ता है।
संमोरन

1
हाय सैमरन, LD_LIBRARY_PATH के बारे में बात करने के लिए धन्यवाद, मैं इसे शामिल करने के लिए अपने उत्तर को अपडेट करूंगा। Glfw लाइब्रेरी का उपयोग करते समय आपको अन्य सभी पुस्तकालयों को निर्दिष्ट करने का कारण नहीं है क्योंकि glfw पहले से ही उन्हें लोड करता है। lddजब प्रोग्राम चलता है, तो पुस्तकालयों को लोड करने के लिए आप कमांड का उपयोग कर सकते हैं । यह जाँचने का भी एक अच्छा तरीका है कि पुस्तकालय ठीक से पाए जाते हैं। lddतुलना करने के लिए आप अपने कार्यक्रम और /usr/local/lib/libglfw.so पर उपयोग कर सकते हैं ।
कैसलडिफेंडर

उत्तर के लिए धन्यवाद! इसके अलावा, मैं खुद को थोड़ा ठीक करना चाहता था: LD_LIBRARY_PATH चर एक व्यवहार्य समाधान है, लेकिन अगर पुस्तकालय मानक पथ में स्थापित किया गया था कि लोडर वैसे भी खोज कर रहा होगा, तो sudo ldconfigइस समस्या को हल करना चाहिए, और LD_LIBRARY_PATH को कॉन्फ़िगर नहीं किया जाना चाहिए। हर बार। यह उत्तर इस बात पर चर्चा प्रदान करता है कि यह क्यों पसंद किया जा सकता है।
सममरोन

निर्मित साझा के साथ करने के बाद, मुझे 2 अन्य लोगों को संकलित / लिंक करना पड़ा। g ++ main.cpp -L / usr / local / lib / -lglfw -lGLU -lGL ने मेरे लिए काम किया।
श्रीधर थियागराजन

9

चूंकि स्वीकृत उत्तर अधिक संपादन की अनुमति नहीं देता है, इसलिए मैं इसे एकल कॉपी-पेस्ट कमांड (पहली पंक्ति में उपलब्ध नवीनतम संस्करण के साथ 3.2.1 प्रतिस्थापित) के साथ संक्षेप में प्रस्तुत करने जा रहा हूं:

version="3.2.1" && \
wget "https://github.com/glfw/glfw/releases/download/${version}/glfw-${version}.zip" && \
unzip glfw-${version}.zip && \
cd glfw-${version} && \
sudo apt-get install cmake xorg-dev libglu1-mesa-dev && \
sudo cmake -G "Unix Makefiles" && \
sudo make && \
sudo make install

यदि आप एक प्रोग्राम को संकलित करना चाहते हैं, तो निम्न कमांड का उपयोग करें:

g++ -std=c++11 -c main.cpp && \
g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi -ldl -lXinerama -lXcursor

यदि आप learnopengl.com ट्यूटोरियल का अनुसरण कर रहे हैं तो आपको GLAD भी सेट करना पड़ सकता है। ऐसे में इस लिंक पर क्लिक करें

http://glad.dav1d.de/#profile=core&specification=gl&api=gl%3D3.3&api=gles1%3Dnone&api=gles2%3Dnone&api=glsc2%3Dnone&language=c&loader=on

और फिर वेबसाइट के निचले दाएं कोने पर "उत्पन्न करें" बटन पर क्लिक करें और ज़िप फ़ाइल डाउनलोड करें। इसे निकालें और निम्नलिखित कमांड के साथ स्रोतों को संकलित करें:

g++ glad/src/glad.c -c -Iglad/include

अब, आपके प्रोग्राम को संकलित करने के आदेश इस प्रकार हैं:

g++ -std=c++11 -c main.cpp -Iglad/include && \
g++ main.o glad.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi -ldl -lXinerama -lXcursor

2
प्रतिभाशाली! मेरे लिए Ubuntu 16.04 पर GLFW v3.2.1 के साथ काम किया। केवल दो छोटे सुधार: सेट संस्करण = XXX को बस संस्करण = "XXX" होना चाहिए और इस पंक्ति के अंत में कोई भी .zip नहीं होना चाहिए: cd glfw - $ {संस्करण} .zip
टिम

2

महान मार्गदर्शक, धन्यवाद। यहां अधिकांश निर्देशों को देखते हुए, यह लगभग मेरे लिए बनाया गया था, लेकिन मेरे पास एक त्रुटि थी।

/usr/bin/ld: //usr/local/lib/libglfw3.a(glx_context.c.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

इस त्रुटि को खोजने के बाद, मुझे -ldlकमांड लाइन में जोड़ना पड़ा ।

g++ main.cpp -lglfw3 -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lGL -lpthread -ldl

फिर "हैलो GLFW" नमूना ऐप संकलित और लिंक किया गया।

मैं linux के लिए बहुत नया हूँ इसलिए मैं पूरी तरह से निश्चित नहीं हूं कि यह अतिरिक्त पुस्तकालय क्या करता है ... मेरी लिंकिंग त्रुटि को ठीक करने के अलावा। मैं ऊपर पोस्ट में उस cmd लाइन स्विच को देखता हूं, हालांकि।


मुझे मिला .o और .exec फ़ाइल .. कृपया मेरी मदद करें कि इसे कैसे चलाएं?
बुद्धिका चतुरंगा

0

यदि किसी को आलसी हो रहा है और शायद यह नहीं जानता कि उन सभी पुस्तकालयों और -l s के लिए शेल को कैसे कॉन्फ़िगर किया जाए , तो मैंने एक पायथन स्क्रिप्ट बनाई (आपके पास python3 है, अधिकांश लिनक्स उपयोगकर्ताओं के पास है।) जो आपको आसानी से संकलन करने की अनुमति देता है। लिपियों और उन्हें बहुत चिंता किए बिना चलाएं, यह सिर्फ नियमित रूप से सिस्टम कॉल है, बस बड़े करीने से व्यवस्थित है, मैंने इसे अपने स्वयं के लिए बनाया है, लेकिन शायद यह उपयोगी होगा: यहां यह है


0

अच्छी तरह से वर्णित उत्तर पहले से ही है, लेकिन मैं इस SHORTER नुस्खा के माध्यम से गया :

  1. Linuxbrew स्थापित करें
  2. $ brew install glfw
  3. cd /home/linuxbrew/.linuxbrew/Cellar/glfw/X.X/include
  4. sudo cp -R GLFW /usr/include

स्पष्टीकरण: हम CMAKE द्वारा GLFW का निर्माण करने का प्रबंधन करते हैं जो Linuxbrew (प्रिय Homebrew के लिनक्स पोर्ट) द्वारा किया जाता है। फिर हेडर फ़ाइलों को कॉपी करें जहां लिनक्स ( /usr/include) से पढ़ता है ।


0

2020 अद्यतन उत्तर

यह 2020 (7 साल बाद) है और मैंने इस दौरान लिनक्स के बारे में अधिक जानकारी प्राप्त की है। विशेष रूप से यह sudo make installपुस्तकालयों को स्थापित करते समय चलाने के लिए एक अच्छा विचार नहीं हो सकता है , क्योंकि ये पैकेज प्रबंधन प्रणाली में हस्तक्षेप कर सकते हैं। (इस मामले में aptजैसा कि मैं डेबियन 10 का उपयोग कर रहा हूं)

यदि यह सही नहीं है, तो कृपया मुझे टिप्पणियों में सही करें।

वैकल्पिक प्रस्तावित समाधान

यह जानकारी GLFW डॉक्स से ली गई है, हालांकि मैंने लिनक्स उपयोगकर्ताओं के लिए प्रासंगिक जानकारी का विस्तार / सुव्यवस्थित किया है।

  • घर निर्देशिका पर जाएं और जीथब से ग्लॉफ़ रिपॉजिटरी क्लोन करें
cd ~
git clone https://github.com/glfw/glfw.git
cd glfw
  • आप इस बिंदु पर एक बिल्ड डायरेक्टरी बना सकते हैं और यहां दिए गए निर्देशों का पालन कर सकते हैं ( ग्लॉफ बिल्ड निर्देश ), हालांकि मैंने ऐसा नहीं करने का विकल्प चुना। निम्न आदेश अभी भी 2020 में काम करने लगता है, हालांकि यह स्पष्ट रूप से glfw ऑनलाइन निर्देशों द्वारा नहीं कहा गया है।
cmake -G "Unix Makefiles"
  • आपको sudo apt-get build-dep glfw3(?) से पहले चलाने की आवश्यकता हो सकती है । मैंने इस आदेश को और sudo apt install xorg-devनिर्देशों के अनुसार दोनों को चलाया ।

  • अंत में चला make

  • अब अपनी परियोजना निर्देशिका में, निम्नलिखित कार्य करें। (Glfw libs का उपयोग करने वाले अपने प्रोजेक्ट पर जाएं)

  • एक बनाएँ CMakeLists.txt, मेरा इस तरह दिखता है

CMAKE_MINIMUM_REQUIRED(VERSION 3.7)
PROJECT(project)

SET(CMAKE_CXX_STANDARD 14)
SET(CMAKE_BUILD_TYPE DEBUG)

set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)

add_subdirectory(/home/<user>/glfw /home/<user>/glfw/src)


FIND_PACKAGE(OpenGL REQUIRED)

SET(SOURCE_FILES main.cpp)

ADD_EXECUTABLE(project ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(project glfw)
TARGET_LINK_LIBRARIES(project OpenGL::GL)
  • अगर आपको CMake पसंद नहीं है तो मैं माफी माँगता हूँ, लेकिन मेरी राय में यह आपके प्रोजेक्ट को जल्दी काम करने का सबसे आसान तरीका है। मैं इसे उपयोग करने के लिए सीखने की सलाह दूंगा, कम से कम बुनियादी स्तर पर। अफसोस कि मैं किसी अच्छे सीएमके ट्यूटोरियल के बारे में नहीं जानता

  • तब करें cmake .और make, अपने प्रोजेक्ट को glfw3 शेयर्ड लिब के खिलाफ बनाया और लिंक किया जाए

  • डायनामिक लिंक्ड लिब बनाने का कुछ तरीका है। मुझे विश्वास है कि मैंने यहाँ स्थैतिक विधि का उपयोग किया है। यदि आप मुझसे अधिक जानते हैं तो कृपया नीचे इस उत्तर में एक सेक्शन / टिप्पणी जोड़ें

  • यह अन्य प्रणालियों पर काम करना चाहिए, अगर मुझे पता नहीं है और अगर मैं सक्षम हूं तो मुझे मदद मिलेगी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.