كيف يمكنني العثور على ملفات المكتبة .so؟

برمجة


حسنًا، لقد تم طرح هذا السؤال عدة مرات، لذا يرجى التحمل معي.

يبدو أن “الأداة” الخاصة بي تتجاهل المكان الذي يجب أن تضع فيه ملفات المكتبة .so.
أحتاج إلى طريقة سهلة – أمر Linux – للعثور عليهم.

clang++ -c -pipe -g -std=gnu++11 -Wall -Wextra -D_REENTRANT -fPIC -DBT_SCAN_LIB_LIBRARY -DQT_QML_DEBUG -DQT_CORE_LIB -I../BT_SCAN_LIB -I. -I/home/nov25-1/Qt/5.15.2/gcc_64/include -I/home/nov25-1/Qt/5.15.2/gcc_64/include/QtCore -I. -I/home/nov25-1/Qt/5.15.2/gcc_64/mkspecs/linux-clang -o bt_scan_lib.o ../BT_SCAN_LIB/bt_scan_lib.cpp
rm -f libBT_SCAN_LIB.so.1.0.0 libBT_SCAN_LIB.so libBT_SCAN_LIB.so.1 libBT_SCAN_LIB.so.1.0
clang++ -ccc-gcc-name g++ -Wl,-rpath,/home/nov25-1/Qt/5.15.2/gcc_64/lib -shared -Wl,-soname,libBT_SCAN_LIB.so.1 -o libBT_SCAN_LIB.so.1.0.0 bt_scan_lib.o  /home/nov25-1/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lpthread    
ln -s libBT_SCAN_LIB.so.1.0.0 libBT_SCAN_LIB.so
ln -s libBT_SCAN_LIB.so.1.0.0 libBT_SCAN_LIB.so.1
ln -s libBT_SCAN_LIB.so.1.0.0 libBT_SCAN_LIB.so.1.0
objcopy --only-keep-debug libBT_SCAN_LIB.so.1.0.0 libBT_SCAN_LIB.so.1.0.0.debug && objcopy --strip-debug libBT_SCAN_LIB.so.1.0.0 && objcopy --add-gnu-debuglink=libBT_SCAN_LIB.so.1.0.0.debug libBT_SCAN_LIB.so.1.0.0 && chmod -x libBT_SCAN_LIB.so.1.0.0.debug

ما حاولت:

حاولت استخدام “whereis” و”find”، لكنني لا أعرف كيفية القيام بذلك
أوامر للبحث في مسار معين، وفي الواقع أفضل عدم الاضطرار إلى تحديد المسار “المشتبه به” لأنني لا أستطيع حتى العثور عليه هناك باستخدام البحث اليدوي.

الحل 1

ما هي “أداتك”؟
أعني أن أسطر الأوامر المنشورة، تقوم بإنشاء ملفات المكتبة المشتركة في الدليل الحالي (الخاص بها)، على ما أعتقد.

الحل 2

يمكنك دائمًا محاولة تحديد موقع

صدَفَة
$ sudo apt install -y locate
# ... installation messages snipped ...
$ sudo updatedb
$ locate libc.so
/usr/lib/arm-linux-gnueabihf/libc.so
/usr/lib/arm-linux-gnueabihf/libc.so.6
$

سوف تحتاج إلى تشغيل updatedb لملء قاعدة بيانات تحديد الموقع في البداية إذا كنت تريد تشغيلها على الفور. وإلا فإن الحزمة المثبتة ستقوم بإعداد مهمة cron لتشغيل Updateb بين عشية وضحاها.
انتبه أن locate يظهر لك فقط الملفات التي أنت استطيع ان اري. وهذا يعني أن الملفات الموجودة في الدلائل التي ليس لديك حق الوصول إليها للبحث لن يتم عرضها. ولكن يمكنك دائما sudo locate somefile لتشغيله كجذر، والذي يجب أن يكون قادرًا على تحديد موقع أي ملف على النظام.

コメント

タイトルとURLをコピーしました