প্রতীক 'এক্সপ্রেস @@ GLIBC_2.2.5' এর অপরিবর্তিত রেফারেন্স


11

অনুরূপ প্রশ্ন এখানে জিজ্ঞাসা করা হয়েছে কিন্তু উত্তর না।

আমার একটি বাস্তবায়ন রয়েছে Levenberg-Marquardt(কোথাও থেকে ডাউনলোড হয়েছে) এবং আমি এটি সংকলনের চেষ্টা করছি তবে নীচের ত্রুটি পেয়েছি।

gauravloj@vertex:~/Documents/source_code/non-rigid_registration/Gauss_newton/levmar-2.6$ make
[ 87%] Built target levmar
Linking C executable lmdemo
/usr/bin/ld: CMakeFiles/lmdemo.dir/lmdemo.c.o: undefined reference to symbol 'exp@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [lmdemo] Error 1
make[1]: *** [CMakeFiles/lmdemo.dir/all] Error 2
make: *** [all] Error 2

অনেক সাইটে, প্রদত্ত সমাধানটি ছিল কিছু পতাকা যুক্ত করা (যেমন এখানে এবং এখানে )। তবে তাদের কেউই আমার পক্ষে কাজ করেনি।

এখানে মেকফাইল , এখানে সিএমকেলিস্ট.টেক্সট এবং এখানে সিএমকেচেড.টেক্সট।


আপনার glibc সংস্করণ কি?
নিকসাগল

ldd --versionদিয়েছে (Ubuntu EGLIBC 2.19-0ubuntu6.3) 2.19
শাশ্বত

আপনার Makefile অন্তর্ভুক্ত করুন। এটি স্পষ্টভাবে ভাঙা লাইব্রেরি নির্ভরতা (এবং সম্ভাব্য গ্লিব সংস্করণ মেলে না) সহ something
nixeagle

2
আপনি কি যুক্ত করার চেষ্টা করেছেন -lm? আপনি এটি কোথায় যুক্ত করেছেন?
মুরু

@ শাশ্বত: আপনি এটি কোথায় যুক্ত করেছেন? আপনি কি কোড পোস্ট করতে পারেন? ধন্যবাদ

উত্তর:


8

ব্যবহারকারীর মতো মনে হচ্ছে যে সমাধানটি খুঁজে পেয়েছিল তা পরে আর ভাগ করে নি। যে সকল ছেলেরা সমাধানটি সন্ধান করতে চাইছে তাদের জন্য কেবল গণিতের লাইব্রেরি স্পষ্টভাবে যুক্ত করুন এবং যুক্ত করুন-ldl

সুতরাং -lmএবং -ldlgccলাইন আপনি কম্পাইল করা হয় এবং এটা ঠিক সূক্ষ্ম যেতে হবে।

বিকল্পভাবে, বেশিরভাগ ক্ষেত্রে আপনি স্পষ্টভাবে সংজ্ঞাটি দিতে পারেন এবং CFLAGSসমস্যাটিকে সেভাবে হ্রাস করতে পারেন । এগুলি সমাধানের মাত্র দুটি উপায়,

উদাহরণ:

user@compiler-shell$ EXPORT CFLAGS=" -g -O2 -lm -ldl -Wall -Wpointer-arith -finline-functions -ffast-math -funroll-all-loops";

6

আমি জুড়েছেন -lmমধ্যে CMakeLists.txtযেখানে লাইব্রেরি বরাদ্দ করা হচ্ছে। এটা এখন কাজ করছে.


4
আপনি সংক্ষিপ্ত বিবরণ প্রদর্শন করতে পারেন? আপনাকে ধন্যবাদ
লুসিও 12:51

3

আমি এই থ্রেডটি একই ধরণের সমস্যার সাথে পেয়েছি। স্পষ্টতই, সমাধানটি আপনার সিএমকেলিস্ট.টেক্সট ফাইলটিতে সন্ধান এবং পরিবর্তন করা:

TARGET_LINK_LIBRARIES(lmdemo ${LIBS})

প্রতি

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