কীভাবে জিএলএফডাব্লু 3 তৈরি এবং ইনস্টল করবেন এবং এটি একটি লিনাক্স প্রকল্পে ব্যবহার করবেন


95

জিএলএফডাব্লু 3

গতরাতে উত্স থেকে লিনাক্সের জন্য জিএলএফডাব্লু 3 প্যাকেজ তৈরির চেষ্টা করে আমি দেরীতে কাজ করছিলাম। এই প্রক্রিয়াটি আমাকে খুব দীর্ঘ সময় নিয়েছিল, মোট প্রায় 3 ঘন্টা, আংশিক কারণ আমি সিএমকের সাথে অপরিচিত, এবং আংশিক কারণ আমি জিএলএফডাব্লুয়ের সাথে অপরিচিত ছিলাম।

আমি আশা করি যে পোস্টটি গতকাল আমার যে অসুবিধা হয়েছিল তা থেকে আপনাকে রক্ষা করবে! আমি ভেবেছিলাম আমার একটি সংক্ষিপ্ত লিখন আপ করা উচিত, এবং আশা করি আপনি আপনার জীবনের বেশ কয়েক ঘন্টা বাঁচান ...

# জিএফএফডাব্লু আইআরসি চ্যানেলে "উরাকা", "বি 6" এবং "নিক্লাস" কে ধন্যবাদ, আমি জিএলএফডাব্লু সংস্করণ 3.0.1 এ কাজ করতে সক্ষম হয়েছি।

দেখা যাচ্ছে যে এটি একটি তুচ্ছ প্রক্রিয়া নয় (অবশ্যই আমার জন্য নয়, আমি কোনও বিশেষজ্ঞ নই) glpw3 সম্পর্কে ওয়েবে খুব বেশি ডকুমেন্টেশন নেই, বিশেষত সিএমকে সাথে সেটআপ করার বিষয়ে।

আমাকে এটি একটি প্রশ্নোত্তর বিভাগে বিভক্ত করতে বলা হয়েছিল, এবং তাই আমি এটি করেছি এবং উত্তরের অংশগুলি এখন নীচে।

আপনি কি জিএলএফডাব্লু রক্ষণাবেক্ষণকারী, বা জিএলএফডাব্লু দলের সদস্য?

যদি GLFW3 এর রক্ষণাবেক্ষণকারীদের মধ্যে কেউ যদি এটি দেখতে পান তবে তাদের কাছে আমার বার্তাটি দয়া করে আপনার ওয়েবসাইটটিতে একটি "উইন্ডোজ, ম্যাক ওএস এক্স এবং লিনাক্সে জিএলএফডাব্লু 3 স্থাপন করুন" বিভাগটি যুক্ত করুন! জিএলএফডাব্লু দিয়ে প্রোগ্রামগুলি লেখা বেশ সহজ, যেহেতু অনলাইন ডকুমেন্টেশনগুলি বেশ ভাল, সমস্ত উপলব্ধ ক্লাস এবং মডিউলগুলির একটি দ্রুত স্ক্যান এবং আপনি যেতে প্রস্তুত থাকবেন। একটি পরীক্ষা প্রকল্পের বৈশিষ্ট্যযুক্ত উদাহরণ এখানে খুব ভাল। আমি যে দুটি প্রধান সমস্যা পেয়েছি তা হ'ল, প্রথমত আমি কীভাবে আমার সিস্টেমে জিএলএফডাব্লু 3 সেটআপ করব এবং দ্বিতীয়ত আমি কীভাবে জিএলএফডব্লু 3 প্রকল্প তৈরি করব? এই দুটি জিনিস অ-বিশেষজ্ঞের পক্ষে যথেষ্ট যথেষ্ট পরিষ্কার নয়।

সম্পাদনা করুন

আজ একটি সংক্ষিপ্ত চেহারা ছিল (তারিখ: 2014-01-14) দেখে মনে হচ্ছে জিএলএফডাব্লু ওয়েবসাইটটি আমি সর্বশেষ দেখেছি এবং জিএলএফডাব্লু সহ গ্লাইডিং প্রোগ্রামগুলি সংকলন করার একটি বিভাগ রয়েছে, যা আমার মনে হয় নতুন।


এটি এখানে রাখার জন্য ধন্যবাদ - স্পষ্টতই এতে প্রচুর কাজ চলে গেছে। আপনি কি এটি একটি প্রশ্ন এবং উত্তর মধ্যে বিভক্ত করতে আপত্তি হবে? আপনি নিজের প্রশ্নের নিজের উত্তর যুক্ত করতে পারেন এবং এটিকে সঠিক হিসাবে চিহ্নিত করতে পারেন।
ফ্রেজার

@ ফ্রেজার হ্যাঁ অবশ্যই যদি আপনি মনে করেন তবে
সেভাবে

4
আমি দ্বিতীয় যে. আমি জিএলএফডাব্লু খুব পছন্দ করি তবে ম্যাক ইত্যাদির অধীনে ভি 3 কীভাবে সংকলন করা যায় সে সম্পর্কে কোনও ডকুমেন্টেশন না পেয়ে সত্যিই হতাশ
হয়েছি

4
@ ইউজার 18490 হ্যাঁ আমি এই ধরণের অবাক করে দিয়েছি, যেহেতু জিএলএফডাব্লু "আরও ভাল একটি পেটুক" বলে মনে হচ্ছে। আমি নিশ্চিত যে তারা তাদের ডকুমেন্টেশনে উল্লেখ করেছে যে আঠার শিখার জন্য কেবল ভাল এবং যদি আপনি একটি পেশাদার উইন্ডো লাইব চান তবে জিএলএফডাব্লু ব্যবহার করুন। তাই আশ্চর্যের বিষয় হ'ল তারা আপনাকে বলছে এটি কতটা ভাল তবে এটি কীভাবে ইনস্টল করবেন তা আপনাকে বলবেন না! (বেশিরভাগ এসএফএমএল এর বিপরীতে)
ব্যবহারকারী 37282501

@ অ্যাডওয়ার্ড বার্ড জিএলএফডাব্লু ইনস্টল করার বিষয়ে অবশেষে এই ওয়েবপৃষ্ঠায় আমি কিছু দরকারী তথ্য পেয়েছি: scratchapixel.com/lessons/3d-basic-lessons/lesson-2-get-stated/…
ব্যবহারকারীর 18490

উত্তর:


130

পদক্ষেপ 1: CMAKE সহ আপনার সিস্টেমে GLFW 3 ইনস্টল করা

এই ইনস্টলের জন্য, আমি কুবুন্টু 13.04, 64 বিট ব্যবহার করছিলাম।

প্রথম পদক্ষেপটি সম্ভবত এই লিঙ্কটি ব্যবহার করে, www.glfw.org থেকে সর্বশেষতম সংস্করণ (ভবিষ্যতের কাজগুলিতে অনুরূপভাবে সংস্করণ অনুমান করে) ডাউনলোড করা

পরবর্তী পদক্ষেপটি সংরক্ষণাগারটি বের করা এবং একটি টার্মিনাল খুলতে হবে open 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 লাইব্রেরি হিসাবে অন্যান্য লিব প্রয়োজন হতে পারে ... দৃশ্যত আমি তাদের ইতিমধ্যে ছিল। (নীচে জি ++ লিঙ্কার পর্যায়ে প্রদত্ত -l বিকল্পগুলি দেখুন))

এখন আপনি টাইপ করতে পারেন makeএবং তারপরে make install, যা সম্ভবত আপনার sudoপ্রথমে প্রয়োজন হবে ।

ঠিক আছে, আপনার শেষ তিনটি সিএমকে পর্যায়ে কিছু ভার্বোজ আউটপুট পাওয়া উচিত, যা আপনাকে তৈরি করা হয়েছে বা কোথায় স্থাপন করা হয়েছে তা আপনাকে বলে। ( /usr/includeউদাহরণস্বরূপ, ইন ।)

পদক্ষেপ 2: একটি পরীক্ষা প্রোগ্রাম তৈরি করুন এবং সংকলন করুন

পরবর্তী পদক্ষেপটি হ'ল ভিম ("কি ?! ভিম ?!" আপনি বলবেন) বা আপনার পছন্দের আইডিই / পাঠ্য সম্পাদক ... আমি ভিম ব্যবহার করিনি, আমি কেট ব্যবহার করেছি, কারণ আমি কুবুন্টুতে রয়েছি ১৩.০৪ ... যাইহোক, এখান থেকে পরীক্ষা পৃষ্ঠাটি ডাউনলোড করুন বা অনুলিপি করুন (পৃষ্ঠার নীচে) এবং সংরক্ষণ করুন, প্রস্থান করুন।

এখন ব্যবহার করে সংকলন করুন g++ -std=c++11 -c main.cpp- সি ++ 11 প্রয়োজন কিনা তা নিশ্চিত নই তবে আমি এটি ব্যবহার করেছিলাম nullptr, আমার এটির প্রয়োজন ছিল ... আপনার জিসিসিটি সংস্করণ 4.7, অথবা আসন্ন সংস্করণ 4.8 এ আপগ্রেড করতে হতে পারে ... এখানে তথ্য ।

তারপরে আপনার ত্রুটিগুলি সমাধান করুন যদি আপনি প্রোগ্রামটি হাত দিয়ে টাইপ করেন বা "খুব চালাক" হওয়ার চেষ্টা করেন এবং কিছু কাজ করে না ... তবে এই দৈত্যটি ব্যবহার করে এটি লিঙ্ক করুন! g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXiসুতরাং আপনি দেখতে পাচ্ছেন, "বিল্ড নির্ভরতা ইনস্টল করুন" অংশে, আপনি জিএল, জিএলইউ, এক্স 11 এক্সএক্সএফ 86 ভিএম (যা কিছু হোক) বিকাশ গ্রন্থাগারগুলিও ইনস্টল করা আছে কিনা তাও দেখতে চাইতে পারেন। হতে পারে আপনার গ্রাফিক্স ড্রাইভারগুলিও আপডেট করুন, আমি মনে করি জিএলএফডাব্লু 3 এর জন্য ওপেনজিএল সংস্করণ 3 বা তার বেশি হতে পারে? সম্ভবত কেউ তা নিশ্চিত করতে পারেন? আপনি যদি লিখিতর বিকল্পগুলি -ldl -lXinerama -lXcursorএটি সঠিকভাবে কাজ করতে যোগ করতে পারেন তবে আপনি যদি dlcloseঅনাকাঙ্ক্ষিত রেফারেন্সগুলি (@ ইউজার ২২৫৫৪২২ এর ক্রেডিট) পেয়ে থাকেন তবে।

এবং, হ্যাঁ, আমার আসলে অনেকগুলি দরকার ছিল -l!

পদক্ষেপ 3: আপনি শেষ, একটি সুন্দর দিন দিন!

আশা করি এই তথ্যটি সঠিক ছিল এবং সমস্ত কিছুই আপনার জন্য কাজ করেছিল এবং আপনি জিএলএফডাব্লু পরীক্ষা প্রোগ্রামটি লিখে উপভোগ করেছেন। এছাড়াও আশা করি এই গাইড ভবিষ্যতে কয়েকজন লোককে সাহায্য করেছে, বা সহায়তা করবে, যারা আমি গতকাল যেমন ছিলাম আজ লড়াই করে যাচ্ছিলাম !

যাইহোক, সমস্ত ট্যাগই হ'ল স্ট্যাকওভারফ্লোতে আমি যে জিনিসগুলির সন্ধান করলাম তা উত্তর খুঁজে পেয়েছিল যা বিদ্যমান ছিল না। (এখন অবধি।) আশা করি আপনি নিজেরাই যদি একইরকম অবস্থানে থাকেন তবে সেগুলিই আপনি অনুসন্ধান করেছিলেন।

লেখক দ্রষ্টব্য:

এটি একটি ভাল ধারণা নাও হতে পারে। এই পদ্ধতিটি (সুডো মেক ইনস্টল ব্যবহার করে) আপনার সিস্টেমে ক্ষতিকারক হতে পারে। (দেখুন দেবিয়ান ভাঙ্গবেন না)

আদর্শভাবে আমি বা অন্য কারও কাছে এমন একটি সমাধান প্রস্তাব করা উচিত যা কেবলমাত্র ডিফল্ট ডিরেক্টরিগুলিতে lib ফাইল ইত্যাদি ইনস্টল না করে কারণ প্যাকেজ পরিচালকদের যেমন পরিচালনা করা উচিত apt, এবং এটি করার ফলে কোনও দ্বন্দ্ব দেখা দিতে পারে এবং আপনার প্যাকেজ পরিচালনা সিস্টেমটি ভেঙে যেতে পারে।

বিকল্প সমাধানের জন্য নতুন "2020 উত্তর" দেখুন।


আমি এটি বুঝতে চেষ্টা করে ঘন্টা ব্যয় করেছি। এই উত্তরটি আমার পক্ষে কাজ করেছে: উবুন্টু 13.04, x64। নেটবিয়ান সি ++ আইডিই (প্রকল্পের বৈশিষ্ট্যগুলিতে লিঙ্কার লাইন যুক্ত করুন -> বিল্ড-> লিংক-> গ্রন্থাগারগুলি-> বিকল্প যুক্ত করুন -> অন্যান্য বিকল্প যুক্ত করুন - অন্যথায় নির্দেশাবলী অনুসরণ করুন)
স্কট ড্রু

স্পষ্টতই (জিএলএফডাব্লু .3.০.৩ সহ) কোনও কিছু ব্যবহার করে powতাই -lmসংকলন বিকল্পগুলিতে যুক্ত করে এটি সংশোধন করে।
বন কাটস

4
এডওয়ার্ড, আপনাকে ধন্যবাদ। আমার এই বিচক্ষণতা যাচাই করা দরকার যে সমস্ত -L প্রয়োজনীয়তার কেবল এটি নয় যে আমি কিছু ভুল করছি।
ভুল

4
বন্ধু তুমি একজন ফু **** জেনিয়াস !!!! আপনি 3 ঘন্টা পেয়েছিলেন, আমি এটি করার চেষ্টা করে 3 দিন পেয়েছি (আসলে কোথা থেকে শুরু করব গবেষণা করছেন, পেটুক ইতিহাস সম্পর্কে পড়া এবং এভাবেই) আপনাকে অনেক ধন্যবাদ *** ধন্যবাদ; আমি এই পরামর্শটিও দিতে চাই যে আমি জিএলএফডাব্লু পৃষ্ঠাটি পড়েছি, তাদের টিউটোরিয়ালটি অনুসরণ করে কাজটি করতে পারিনি, যখন আমি এটি পেয়েছি তখন প্রায় ছেড়ে দিচ্ছিল এবং তারা আপনার মতো সহজ এবং প্রত্যক্ষ ব্যাখ্যা দেবে না। দুর্দান্ত কাজ আপনি এখানে করেছেন !!
ভিক্টর আর। অলিভিরা

4
একটি পরিষ্কার লিনাক্স মিন্টে আমাকে এই প্যাকেজগুলি ইনস্টল করতে হয়েছিল:sudo apt-get update && sudo apt-get install build-essential libevent-pthreads-2.0.5 doxygen xorg-dev libglu1-mesa-dev
লেনার হোয়েট

18

আমি এইভাবে এটি সমাধান

একটি পিকেজি-কনফিগার ফাইলটি লাইব্রেরি ব্যবহারের জন্য প্রয়োজনীয় সমস্ত প্রয়োজনীয় সংকলন-সময় এবং লিঙ্ক-টাইম পতাকা এবং নির্ভরতা বর্ণনা করে।

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  

আমি জানি না এই সমস্ত লিবগুলি আসলে সংকলনের জন্য প্রয়োজনীয় কিনা তবে আমার জন্য এটি কাজ করে ...


4
এই উত্তরটি অবশ্যই দেখতে হবে। আমি আগে pkg-config সম্পর্কে জানতাম না। তবে আজ থেকে আমি এটি শেষ অবধি ব্যবহার করব, কারণ এটি আমাকে যে কোনও ধরনের সংযোগ নির্ভরতা সমস্যার সমাধান করতে সহায়তা করবে। যেমন একটি দুর্দান্ত উত্তর জন্য ধন্যবাদ।
সায়ান ভট্টাচার্জি

18

মনে রাখবেন যে বিকল্পটি -lদিয়ে গ্লাফডাব্লু ইনস্টল করা হলে আপনার এতগুলি দরকার নেই BUILD_SHARED_LIBS। (আপনি ccmakeপ্রথমে চালিয়ে এই বিকল্পটি সক্ষম করতে পারেন )।

এইভাবে sudo make installভাগ করা লাইব্রেরিটি এতে ইনস্টল করবে /usr/local/lib/libglfw.so। তারপরে আপনি উদাহরণ সহ একটি সাধারণ ফাইল সংকলন করতে পারেন:

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

তারপরে আপনার প্রোগ্রামটি চালানোর আগে ভাগ করে নেওয়া লাইব্রেরিগুলির জন্য অনুসন্ধানের পথে / usr / local / lib / যুক্ত করতে ভুলবেন না। এটি ব্যবহার করে করা যেতে পারে:

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

এবং আপনি এটি নিজের মধ্যে রাখতে পারেন ~/.bashrcযাতে আপনাকে এটি সর্বদা টাইপ করতে হবে না।


4
এই তথ্যগুলি তাদের জন্য সত্যিই গুরুত্বপূর্ণ যারা সংকলন এবং চালনার জন্য টার্মিনাল ব্যবহার না করে একটি আইডিই সেটআপ করতে চান; এটি কীভাবে করা যায় সে সম্পর্কে আপনি আরও বিশদ দিতে পারেন? আমি চেষ্টা করেছি কিন্তু মোটেও সফল হই নি
ভিক্টর আর। অলিভিরা

এখানে নুব! আমি জানি এটি কিছুটা পুরানো, তবে এটি সত্যই আমাকে সাহায্য করেছিল। কেউ কি ব্যাখ্যা করতে পারেন (বা কারও সাথে ব্যাখ্যা করার সাথে লিঙ্ক করেছেন) কেন একটি ভাগ করা লাইব্রেরি ব্যবহার করে এটি তৈরি করা হবে যাতে আমাদের অন্য সমস্ত লাইব্রেরিগুলিকে লিঙ্ক করতে হবে না, যার মধ্যে বেশিরভাগ অংশীদারি ফাইলও ছিল? এছাড়াও, আমার নতুন সংকলিত এক্সিকিউটেবল চালনার চেষ্টা করার সময় আমাকে এলডি_লিবিআরএইপিএটিএইচ ভেরিয়েবলটি সেট করতে হয়েছিল , বা জ্ঞান ত্রুটির ক্রোধের মুখোমুখি হতে হয়েছিল।
সামারমন

4
হাই সামারন, এলডি_লিবিআরএআইপিএইচটি সম্পর্কে কথা বলার জন্য ধন্যবাদ, আমি এটি অন্তর্ভুক্ত করতে আমার উত্তর আপডেট করব। Glfw লাইব্রেরিটি ব্যবহার করার সময় আপনাকে অন্য সমস্ত গ্রন্থাগার নির্দিষ্ট করার দরকার নেই কারণ glfw ইতিমধ্যে সেগুলি লোড করে। lddপ্রোগ্রামটি চালিত হলে কোন লাইব্রেরি লোড হয় তা পরীক্ষা করতে আপনি কমান্ডটি ব্যবহার করতে পারেন । লাইব্রেরিগুলি সঠিকভাবে পাওয়া গেছে কিনা তা যাচাই করার একটি ভাল উপায়। আপনি lddতুলনা করতে আপনার প্রোগ্রাম এবং /usr/local/lib/libglfw.so এ ব্যবহার করতে পারেন ।
ক্যাসলডিফেন্ডার

উত্তরের জন্য ধন্যবাদ! এছাড়াও, আমি নিজেকে কিছুটা সংশোধন করতে চেয়েছিলাম: এলডি_লিবিআরএআইপিএটিএইচ ভেরিয়েবল একটি কার্যকর সমাধান, তবে লাইব্রেরিটি যদি স্ট্যান্ডার্ড পাথে ইনস্টল করা হয় যে কোনওভাবেই লোডার অনুসন্ধান করবে, চলমান sudo ldconfigএই সমস্যাটি সমাধান করা উচিত, এবং কনফিগার করার প্রয়োজন নেই LD_LIBRARY_PATH প্রত্যেকবার. এই উত্তরটি কেন এটিকে পছন্দ করা যেতে পারে সে সম্পর্কে একটি আলোচনা সরবরাহ করে।
সামারন

বিল্ড শেয়ারডের সাথে কাজ করার পরে, আমাকে আরও 2 জনকে সংকলন / লিঙ্ক করতে হয়েছিল। g ++ main.cpp -L / usr / local / lib / -lglfw -lGLU -lGL আমার পক্ষে কাজ করেছে।
শ্রীধর থিয়াগারাজন

9

যেহেতু গৃহীত উত্তরটি আরও সম্পাদনার অনুমতি দেয় না, তাই আমি এটির একটি একক অনুলিপি-কমান্ড দিয়ে সংক্ষিপ্তসার করতে যাচ্ছি (প্রথম লাইনে উপলভ্য সর্বশেষতম সংস্করণ দিয়ে ৩.২.১ প্রতিস্থাপন করুন):

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 টিউটোরিয়ালটি অনুসরণ করে থাকেন তবে আপনাকে খুব ভাল সেটআপও করতে হতে পারে। সেক্ষেত্রে এই লিঙ্কটিতে ক্লিক করুন

http://glad.dav1d.de/#profile=core&specifications=gl&api=gl%3D3.3&api=gles1%3 ডোনোন&api=gles2%3Dnone&api=glsc2%3 ডোন&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

4
উজ্জ্বল! GLFW v3.2.1 এর সাথে উবুন্টু 16.04 এ আমার জন্য কাজ করেছেন। কেবল দুটি ছোট ছোট সংশোধন: সেট সংস্করণ = XXX এর সংস্করণ = "XXX" হওয়া উচিত এবং এই লাইনের শেষে কোনও জিপ থাকা উচিত নয়: সিডি glfw - $ {সংস্করণ}। জিপ
টিম

3

2020 আপডেট উত্তর

এটি 2020 (7 বছর পরে) এবং আমি এই সময়ের মধ্যে লিনাক্স সম্পর্কে আরও শিখেছি। বিশেষতঃ sudo make installলাইব্রেরি ইনস্টল করার সময় এটি চালানো ভাল ধারণা নাও হতে পারে কারণ এগুলি প্যাকেজ পরিচালনা ব্যবস্থায় হস্তক্ষেপ করতে পারে। (এই ক্ষেত্রে aptআমি যেমন ডেবিয়ান ১০ ব্যবহার করছি)

এটি সঠিক না হলে মন্তব্যগুলিতে আমাকে সংশোধন করুন।

বিকল্প প্রস্তাবিত সমাধান

এই তথ্যটি জিএলএফডাব্লু ডক্স থেকে নেওয়া হয়েছে, তবে আমি লিনাক্স ব্যবহারকারীদের জন্য প্রাসঙ্গিক তথ্য প্রসারিত / প্রবাহিত করেছি।

  • হোম ডিরেক্টরিতে যান এবং গিথুব থেকে ক্লোন glfw সংগ্রহস্থল rep
cd ~
git clone https://github.com/glfw/glfw.git
cd glfw
  • আপনি এই মুহুর্তে একটি বিল্ড ডিরেক্টরি তৈরি করতে পারেন এবং এখানে নির্দেশাবলী অনুসরণ করতে পারেন ( glfw বিল্ড নির্দেশিকা ), তবে আমি এটি না করা বেছে নিয়েছি। নিম্নলিখিত কমান্ডটি এখনও 2020 সালে কাজ করছে বলে মনে হচ্ছে তবে এটি glpw অনলাইন নির্দেশাবলী দ্বারা স্পষ্টভাবে বলা হয়নি।
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 .এবং make, আপনার প্রকল্পটি গিল্ফডাব্লু 3 ভাগ করে দেওয়া লাইবের বিপরীতে নির্মিত এবং লিঙ্ক করা উচিত

  • একটি গতিশীল লিঙ্কযুক্ত lib তৈরির কিছু উপায় রয়েছে। আমি বিশ্বাস করি যে আমি এখানে স্থির পদ্ধতি ব্যবহার করেছি। আপনি যদি আমার চেয়ে বেশি জানেন তবে দয়া করে নীচে এই উত্তরে একটি বিভাগ মন্তব্য / যুক্ত করুন

  • এটি অন্য সিস্টেমে কাজ করা উচিত, যদি আমাকে না জানায় এবং আমি সক্ষম হয়েছি তবে সহায়তা করব


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

তারপরে "হ্যালো জিএলএফডাব্লু" নমুনা অ্যাপ্লিকেশন সংকলিত এবং লিঙ্কযুক্ত।

আমি লিনাক্সে বেশ নতুন তাই আমার অতিরিক্ত সংযোগের ত্রুটি ঠিক করা ছাড়া এই অতিরিক্ত গ্রন্থাগারটি ঠিক কী করে তা আমি পুরোপুরি নিশ্চিত নই। আমি যাইহোক, উপরের পোস্টে যে সেমিডি লাইন স্যুইচ দেখতে পাচ্ছি।


আমি .o এবং .exec ফাইল পেয়েছি .. দয়া করে আমাকে এটি সাহায্য করুন, কীভাবে এটি চালানো যায়?
বুধিকা চতুরঙ্গ ২

0

যদি কারও অলসতা দেখা দেয় এবং সম্ভবত সেই সমস্ত লাইব্রেরি এবং -l s এর জন্য কীভাবে শেল কনফিগার করতে হয় তা জানেন না , তবে আমি একটি পাইথন স্ক্রিপ্ট তৈরি করেছি (আপনার কাছে পাইথন 3 থাকতে হবে, বেশিরভাগ লিনাক্স ব্যবহারকারীদের এটি রয়েছে)) যা আপনাকে সহজেই সংকলন করতে দেয় স্ক্রিপ্টগুলি এবং খুব বেশি উদ্বেগ ছাড়াই এগুলি চালান, এটির জন্য নিয়মিত সিস্টেম কল রয়েছে, কেবল খুব সুন্দরভাবে সাজানো হয়েছে, আমি এটি নিজের জন্য তৈরি করেছি তবে সম্ভবত এটি দরকারী হবে: এটি এখানে


0

সুস্পষ্ট বর্ণিত উত্তরটি ইতিমধ্যে রয়েছে, তবে আমি এই সংক্ষিপ্ত রেসিপিটি দিয়েছি :

  1. লিনাক্সব্রু ইনস্টল করুন
  2. $ brew install glfw
  3. cd /home/linuxbrew/.linuxbrew/Cellar/glfw/X.X/include
  4. sudo cp -R GLFW /usr/include

ব্যাখ্যা: আমরা সিএমএকেই জিএলএফডাব্লু তৈরি করতে পরিচালনা করি যা লিনাক্সব্রিউ (প্রিয় হোমব্রুয়ের লিনাক্স পোর্ট) দ্বারা সম্পন্ন হয়। তারপরে শিরোনাম ফাইলগুলি অনুলিপি করুন যেখানে লিনাক্স ( /usr/include) থেকে পড়ে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.