سلام
یه برنامه نوشته شده به زبان 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 رو میداد.
-----------------------------------------------------------------
اگه ممکنه برای حلش راهنمایی کنید
سلام
راستش چند تا برنامه هست که به زبان 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