انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: مشکل در پیدا کردن کتابخانه ی استاتیک، هنگام کامپایل برنامه C با دستور mpicc  (دفعات بازدید: 566 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین NULL!

  • Newbie
  • *
  • ارسال: 2
  • جنسیت : دختر
سلام

یه برنامه نوشته شده به زبان C به همراه یه تعداد کتابخانه که همراه با برنامه نوشته شده بود و همچنین یه فایل make هم براش نوشته بود، دانلود شده.
تمام کتابخانه های مورد نیاز برای خود برنامه(که گفته شده بود برای اجرای برنامه نیازه)هم نصب شده.
حتی نسخه Ubuntu ای که دانلود شده هم دقیقا همون نسخه ای هست که اونا خودشون برنامه رو روش اجرا کردن (12.04.1 LTS).
اما زمانی که دستور make رو می نویسم، پیام زیر نمایش داده می‌شه:

usr/bin/ld: skipping incompatible ../../LIB/libSTATIC_Library_Name.a when searching for -lSTATIC_Library_Name

usr/bin/ld: cannot find -lSTATIC_Library_Name

collect2: ld returned 1 exit status

make: *** [PROGRAM_NAME] Error 1
--------------------------------------------------------------
دستوری که توسط فایل make در نهایت نوشته میشه به صورت زیر هست:

mpicc -o PROGRAM_NAME -Wall -Wunused-function -fPIC -O3 -I. -I ../../INCLUDE PROGRAM_NAME.c -L ../../LIB -lSTATIC_Library_Name -lanotherName -lanotherName2

دو تا کتابخانه ی بعدی (anotherName) و (lanotherName2) تو مسیر LIB/../.. نیست، ولی کتابخانه (STATIC_Library_Name) دقیقا توی همین مسیر هست؛ منتها میگه نمیتونه پیداش کنه

---------------------------------------------------------------
طی جستجو در گوگل، بنظر میرسید که شاید یه تعداد از کتابخانه ها برای کامپایلر gcc باید نصب بشه مثل gcc-multilib، و یه چند تای دیگه هم بود که الان اسماشونو یادم نیست (همون موقع تست میکردم)، اما با وجود نصب اون بسته ها، باز هم همین Error رو میداد.

-----------------------------------------------------------------

اگه ممکنه برای حلش راهنمایی کنید


آفلاین محمد جواد محبی

  • Newbie
  • *
  • ارسال: 11
  • جنسیت : پسر
    • ایران لینوکس
سلام

دوست گرامی ممکنه که بگین چه نرم افزاری رو دارید نصب می کنید که بشه بهتر راهنمایی کرد.

شما متاسفانه نه اسم نرم افزار را گفتید نه اسم Library هایی که در اون مشکل دارید.
ایران لینوکس
معرفی ابزارها و راهکارهای متن باز
وبسایت آموزشی www.ir-linux.ir
انجمن ایران لینوکس http://www.ir-linux.ir/forum

آفلاین NULL!

  • Newbie
  • *
  • ارسال: 2
  • جنسیت : دختر
سلام
راستش چند تا برنامه هست که به زبان c نوشته شده (یعنی MPI هست که با کمک زبان c نوشته شده)
بعد یه تعداد فایل کتابخانه اومدن خودشون براش نوشتن (برای همین اسماشو ننوشتم)
اسمه Program_name برابر با sima هست (به عبارتی فایلی که داره کامپایل میشه sima.c هست)
و اسمه کتابخونه ای که ازش ایراد میگیره artis_static.a هست.
اون دوتا کتابخونه ی بعدی هم تو پوشه LIB نیستن، ولی حالا فعلا در مورد اونا چیزی نگفته!

توی پوشه ای که برنامه sima.c هست یه سری فایل دیگه هم هست، یکی از اون فایلا اسمش makefile هست، که باعث میشه وقتی تو مسیر برنامه میریم، وقتی دستور make رو بنویسیم دقیقا دستور زیر فراخوانی بشه:

mpicc -o sima -Wall -Wunused-function -fPIC -O3 -I. -I../../INCLUDE sima.c -L ../../LIB -lartis_static -lpthread -lm

دقیقا کپی پیسته متن Error ی که میده هم به صورت زیر هست:
(اون اسلش هایی که آخر دو خط اول و دوم افتاده، قبل از usr (اول خط) هستن.)


/usr/bin/ld: skipping incompatible ../../LIB/libartis_static.a when searching for -lartis_static

/usr/bin/ld: cannot find -lartis_static

collect2: ld returned 1 exit status

make: *** [sima] Error 1