/ usr / bin / ld: -lOpenCL খুঁজে পাচ্ছে না


8

বর্তমানে এই ওয়েবসাইট থেকে ওপেনসিএল-তে প্রদত্ত একটি সাধারণ প্রোগ্রাম সংকলনের চেষ্টা করছে । এটি আমার যা প্রয়োজন DeviceInfoতা আমাকে দেবে। কেবল একটি অনুরোধ করার পরে make, আমি নীচে ত্রুটি পেয়েছি:

sharan@sharan-X550CC:~/opencl-ex/Ex1$ make 
g++ DeviceInfo.cpp -I ../../Cpp_common  -lOpenCL -o DeviceInfo
/usr/bin/ld: cannot find -lOpenCL
collect2: error: ld returned 1 exit status
Makefile:23: recipe for target 'DeviceInfo' failed
make: *** [DeviceInfo] Error 1

এখন আমি এই ওয়েবসাইট থেকে নির্দেশাবলী ব্যবহার করে ইনস্টল করেছি । তবে, আমি তবুও ত্রুটিটি পেয়েছি।

আমি কীভাবে এই ত্রুটিটি সমাধান করতে পারি?

উত্তর:


7

আপনি লিঙ্কারটি OpenCLলাইব্রেরিটি খুঁজে পাচ্ছেন না ।

OpenCLলাইব্রেরিটি খুঁজে পেতে আপনার লিঙ্কারকে সহায়তা করা উচিত ।

অনুরূপ ইস্যু এখানে উত্থাপিত হয়েছিল

সমাধানটি ছিল একটি লাইব্রেরির জন্য একটি পরিচিত লিবিব স্থানে একটি লিঙ্ক তৈরি করা:

sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so

অন্য বিকল্প:

আপনার যে OpenCLলাইব্রেরিটি রয়েছে তা ধরে নিলে গ্রন্থাগারগুলিতে /usr/lib/x86_64-linux-gnu/লাইব্রেরি ফোল্ডারটি যুক্ত করা যেতে পারে:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/"

আপনার "ডায়নামিক লিংকার" আপডেট করতে হবে:

sudo ldconfig

1
এটি আমার পক্ষে কাজ করেছিল! খুব প্রথম উত্তর। ধন্যবাদ!
শরণ দুগিরালা

2

ইয়ারোন দ্বারা ইতিমধ্যে জানিয়েছে যে লিঙ্কারটি ওপেনসিএল লাইব্রেরিটি কোথায় খুঁজে পাবে তা জানে না, অর্থাৎ এটি যে জায়গাগুলির জন্য অনুসন্ধান করে সেখানে এটি কোনওটিই নয়।

এটিকে সেই জায়গাগুলির একটিতে স্থানান্তরিত করার পরিবর্তে (উদাহরণস্বরূপ /usr/lib) আমি লিঙ্কারটিকে -Lপতাকাটির মাধ্যমে কোথায় এটি সন্ধান করতে হবে তা জানানোর পরামর্শ দেব suggest কমান্ডটি তখন পড়বে (নোটটি নোট করুন -L/usr/lib/x86_64-linux-gnu)

g++ DeviceInfo.cpp -I ../../Cpp_common -L/usr/lib/x86_64-linux-gnu -lOpenCL -o DeviceInfo

আপনি যদি হস্তাক্ষর ব্যবহার করে থাকেন তবে আপনি সহজেই এর Makefileমতো সংকলক / লিংক কমান্ডটি সংশোধন করতে পারেন। অন্যথায় আপনাকে কীভাবে এটি অন্তর্ভুক্ত করবেন তা আপনার বিল্ড সিস্টেমকে স্পর্শ করতে হবে।


বা LDFLAGSউদাহরণস্বরূপ চেষ্টা করুনmake 'LDFLAGS=-L/usr/lib/x86_64-linux-gnu'
স্টিলড্রাইভার

যদি আপনি খাঁটি অস্থায়ী সমাধানের সন্ধান করেন তবে এটি কৌশলটিও করবে। তবে আমি এটি LDFLAGS=$LDFLAGS:/usr/lib/x86_64-linux-gnu/কোনও পূর্ববর্তী সেটিংস সংরক্ষণ করার জন্য পরামর্শ দিচ্ছি
mbyss
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.