"/ Usr / bin / ld: -ccartart খুঁজে পাচ্ছেন না"


13

আমি উবুন্টুর নবাগত এবং উবুন্টু 14.04 64-বিট ব্যবহার করছি। আমি এমন makeএকটি প্রকল্প চাই যা ব্যবহার করে cudaএবং opencvচলতে চলতে আমি নিম্নলিখিত ত্রুটিটি পেয়েছিcmake . && make

Linking CXX executable ground_estimation
/usr/bin/ld: cannot find -lcudart
collect2: error: ld returned 1 exit status
make[2]: *** [ground_estimation] Error 1
make[1]: *** [CMakeFiles/ground_estimation.dir/all] Error 2
make: *** [all] Error 2

এটি আউটপুট ld -lcudart --verbose

attempt to open /usr/x86_64-linux-gnu/lib64/libcudart.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libcudart.a failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libcudart.so failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libcudart.a failed
attempt to open //usr/local/lib64/libcudart.so failed
attempt to open //usr/local/lib64/libcudart.a failed
attempt to open //lib/x86_64-linux-gnu/libcudart.so failed
attempt to open //lib/x86_64-linux-gnu/libcudart.a failed
attempt to open //lib64/libcudart.so failed
attempt to open //lib64/libcudart.a failed
attempt to open //usr/lib/x86_64-linux-gnu/libcudart.so failed
attempt to open //usr/lib/x86_64-linux-gnu/libcudart.a failed
attempt to open //usr/lib64/libcudart.so failed
attempt to open //usr/lib64/libcudart.a failed
attempt to open //usr/local/lib/libcudart.so failed
attempt to open //usr/local/lib/libcudart.a failed
attempt to open //lib/libcudart.so failed
attempt to open //lib/libcudart.a failed
attempt to open //usr/lib/libcudart.so failed
attempt to open //usr/lib/libcudart.a failed

libcudartউপস্থিত রয়েছে /usr/local/cuda/lib64এবং আমি লাইব্রেরির পথেও যুক্ত করেছি:

echo $LD_LIBRARY_PATH
/usr/lib/nvidia-current:/usr/local/cuda/lib64:/usr/local/cuda/lib:

এটি এর ফলাফল ls /usr/local/cuda/lib64:

libcublas_device.a   libcufftw.so.6.0.37    libnppi.so.6.0
libcublas.so         libcuinj64.so          libnppi.so.6.0.37
libcublas.so.6.0     libcuinj64.so.6.0      libnpps.so
libcublas.so.6.0.37  libcuinj64.so.6.0.37   libnpps.so.6.0
libcudadevrt.a       libcurand.so           libnpps.so.6.0.37
libcudart.so         libcurand.so.6.0       libnvblas.so
libcudart.so.6.0     libcurand.so.6.0.37    libnvblas.so.6.0
libcudart.so.6.0.37  libcusparse.so         libnvblas.so.6.0.37
libcudart_static.a   libcusparse.so.6.0     libnvToolsExt.so
libcufft.so          libcusparse.so.6.0.37  libnvToolsExt.so.1
libcufft.so.6.0      libnppc.so             libnvToolsExt.so.1.0.0
libcufft.so.6.0.37   libnppc.so.6.0         libOpenCL.so
libcufftw.so         libnppc.so.6.0.37      libOpenCL.so.1
libcufftw.so.6.0     libnppi.so

ldসন্ধানের /usr/local/cuda/lib64পথে আমার কী করা উচিত libcudart?


আপনি কি দয়া করে পারেন ls /usr/local/cuda/lib64?
অ্যালেক্সগ্রাগ

আমার কাছেও একই প্রশ্ন। নিবন্ধ থেকে রেফারেন্স: [ডেবিয়ান আইপিপি সঙ্গে OpenCV উদাহরণ সংকলন: / usr / bin / LD: -llibsvml.so collect2 খুঁজে পাচ্ছি না: ত্রুটি:। LD 1 প্রস্থান অবস্থা ফিরে] [1] [1]: stackoverflow.com/questions/ 24234961 /…
Hellomzhxlp

উত্তর:


22

এটি libcudaকোথায় ldসন্ধান করছে সেখানে একটি প্রতীকী লিঙ্ক তৈরি করুন ।

sudo ln -s /usr/local/cuda/lib64/libcudart.so /usr/lib/libcudart.so

11

LD_LIBRARY_PATHldconfigপ্রয়োগের সময় গ্রন্থাগারগুলির সন্ধান করার সময় এবং সম্পর্কিত সরঞ্জামগুলির আচরণ পরিবর্তন করতে ব্যবহৃত হয় ।

ldLinker টুল এই পরিবর্তনশীল ব্যবহার করে না। আপনি যদি একটি মানহীন ডিরেক্টরিতে অবস্থিত একটি লাইব্রেরি ব্যবহার করতে চান তবে আপনাকে -Lকমান্ডের প্যারামিটারটি ব্যবহার করতে হবে :

ld -lcuda -L/usr/local/cuda/lib64

আপনি যদি ডাউনলোড এবং বিদ্যমান প্রকল্পটি রেখেছেন এবং পুরো সংকলনটি না ভেঙে কীভাবে বিদ্যমান মেকফিল (গুলি) সংশোধন করবেন তা না জানেন তবে আপনি নিম্নলিখিত পদ্ধতিতে চালনা করতে পারেন :

export LDFLAGS=-L/usr/local/cuda/lib64
make

পরিবর্তনশীল এলডিএফএলএলজিএস (যা মেকফাইলে সংজ্ঞায়িতও করা যেতে পারে ld) সংকলন সূচনা দ্বারা প্রবর্তন করার সময় লিঙ্কারে ( ) নির্দিষ্ট সুনির্দিষ্ট যুক্তিগুলি ব্যবহার করতে ব্যবহৃত হয় ।


1
ld: warning: cannot find entry symbol _start; not setting start addressরান করার সময় আমি পেয়েছিld -lcuda -L/usr/local/cuda/lib64
আরশ

@ আরশ: আপনি যে অংশটি সংকলনের চেষ্টা করেছেন তার দ্বারা অনুরোধ করা লাইবকিডা সংস্করণটি ইনস্টল করেছেন?
বেনোইট

@ আরশের মতোই সমস্যা এবং হ্যাঁ আমার কাছে লাইবকুডার সঠিক সংস্করণ রয়েছে
মহসিন বুখারী

2

আপনি পাথগুলি যুক্ত করার পরিবর্তে লিঙ্কগুলি তৈরি করতে পারেন:

ln -s /usr/local/cuda/lib64/libcudart.so /usr/local/lib/
ln -s /usr/local/cuda/lib64/libcudart.a /usr/local/lib/

আমার কাছে / usr / স্থানীয় / lib64 / নেই, আমার কাছে / usr / স্থানীয় / lib /
আরশ

1

আমি এটি স্থির! আপনার Makefile এ যান এবং পরিবর্তন করুন

/usr/local/cuda/

প্রতি

/usr/local/cuda-7.0

(যদি আপনি যা পেলেন)

এটা আমার জন্য কাজ করেছে


0

মীমাংসিত

git clone https://github.com/inducer/pycuda.git
cd pycuda
sudo configure --cuda-root=/usr/lib/cuda-10.1

sudo ln -s /usr/lib/cuda-10.1/targets/x86_64-linux/include src/cpp/

বা /usr/lib/cuda-10.1/targets/x86_64-linux/ / src / cpp / এ অন্তর্ভুক্ত থেকে সমস্ত শিরোনাম ফাইল অনুলিপি করুন

এটি পপ-ওএস 19.10 এ আমার জন্য কাজ করেছে

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