Avatar ·

كيفية عرض قائمة الرموز (الدوال، الفئات) في ملف .so على لينكس؟

مرحباً بالجميع! أنا مبتدئ في C++ وبدأت للتو في فهم المكتبات الديناميكية (.so) على لينكس. لدي مكتبة تم تجميعها من عدة ملفات. أريد التحقق من الدوال والفئات التي تقوم بتصديرها، أي الرموز المتاحة للبرامج الأخرى. المشكلة: لقد قمت بتجميع المكتبة `libmylib.so` باستخدام g++، ولكن عندما أحاول ربط برنامج اختباري بها، يعطي الرابط أخطاء "undefined reference". أشك في أن أسماء الدوال تتعرض للتشويه (name mangling) أو أنني لم أعلنها بشكل صحيح باستخدام extern "C". مثال الكود الذي أستخدمه لتجميع المكتبة: ```cpp // mylib.h #pragma once void hello(); int add(int a, int b); ``` ```cpp // mylib.cpp #include "mylib.h" #include void hello() { std::cout << "Hello from lib!" << std::endl; } int add(int a, int b) { return a + b; } ``` أقوم بالتجميع هكذا: ```bash g++ -shared -fPIC mylib.cpp -o libmylib.so ``` كيف يمكنني الآن عرض الرموز التي...