سؤال

لقد حاولت العثور على كيفية إنشاء ملفات DLL على نظام التشغيل Linux باستخدام Google، ولكن حصلت على معلومات مربكة للغاية.

هل من الممكن كتابة مكتبات الارتباط الديناميكي على نظام التشغيل Linux؟إذا لم يكن الأمر كذلك، فهل هناك وسائل أخرى يمكنني من خلالها استدعاء التعليمات البرمجية في وحدة نمطية أخرى من عدة برامج قيد التشغيل؟

هل كانت مفيدة؟

المحلول

وذلك لأن DLL هو مصطلح Windows.في نظام Linux يطلق عليها المكتبات المشتركة.

http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html

نصائح أخرى

مثل سكليففز كما قال، المصطلح الذي تبحث عنه في نظام التشغيل Linux هو كائن مشترك.يتم إعطاء هذه امتداد الملف .so.

باستخدام gcc يمكنك إنشاء ملف .so باستخدام -shared خيار.

على سبيل المثال.


gcc -shared -o libfoo.so foo.c

إذا قمت بتسمية الكائن المشترك الخاص بك lib*.so فيمكنك التحويل البرمجي ضده باستخدام الملف -l الخيار على الرابط الخاص بك.لاحظ أنه يتم استنتاج "lib" في هذه الحالة.

أي.


ld -o a.out -lfoo someobject.o 

بدلا من ذلك يمكنك تحميل .so الملفات في وقت التشغيل، تمامًا كما يمكنك باستخدام .dlls، وذلك باستخدام dlopen () وdlsym ().

إنها كثير إذا كنت قد بدأت للتو، ولكن في مرحلة ما ستحتاج إلى الرجوع إلى كتاب "أولريش دريبر"كيفية كتابة المكتبات المشتركة.”

أعتقد أن ملفات .SO بدلاً من ملفات DLL، مما يعني أن الكائن المشترك، وليس StackOverflow :)، هو ما تريده.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top