سؤال

محاولة تشغيل برنامجي في OS FreeBSD ، لدي النتائج التالية:

$ ./myprogram

ELF binary type "0" not known

./myprogram: 1: Syntax error: "&" unexpected (expecting ")")

$ file myprogram

myprogram: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 

dynamically linked (uses shared libs), for GNU/Linux 2.6.15, 

not stripped

تم تصميم البرنامج في GCC على الكمبيوتر Ubuntu. ماذا يمكنني أن أفعل؟ هل يمكنني إنشاء البرنامج لـ FreeBSD على جهاز الكمبيوتر Ubuntu الخاص بي عن طريق تغيير بعض خيارات الإنشاء ، أو أحتاج إلى بنائه في OS FreeBSD؟ ربما هناك طريقة ما لتحويل التنفيذ إلى التنسيق المعترف بها من قبل Freebsd؟

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

المحلول

يمكن تجميع عدد كبير من برامج Linux على أنظمة BSD ولكنها ليست هي نفس نظام التشغيل. Linux و BSD غير متوافقة من الناحية الفنية.

في هذه الأيام ، يشحن BSD باستخدام ABI (واجهة ثنائية للتطبيق) لـ Linux والتي ستترجم نظام Linux Sys أثناء الطيران (كثيرًا كيفية عمل النبيذ). سيتيح لك ذلك تشغيل ثنائيات Linux Elf على أنظمة BSD مع عقوبة أداء صغيرة.

ومع ذلك ، فهي ليست هي نفس نظام التشغيل وأفضل رهان لك هو تجميع النظام المستهدف إما عن طريق الوصول إليه أو باستخدام طريقة التجميع المتقاطع.

نصائح أخرى

يمكنك تشغيل الكثير من برامج Linux على FreeBSD ، انظر http://www.freebsd.org/doc/en_us.iso8859-1/books/handbook/linuxemu.html.

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

جرب العلامة التجارية القابلة للتنفيذ باعتبارها Linux قابلة للتنفيذ باستخدام BrandEfl (لا تزال بحاجة إلى جميع إعدادات المكتبات التابعة ، أو حاول ربطها بشكل ثابت

http://www.freebsd.org/cgi/man.cgi؟query=brandelf&apropos=0&sektion=0&manpath=freebsd+8.0-release&format=html

Brandelf -t "Linux" ويجب أن تعمل.

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