انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: ا.س. در 22 آبان 1403، 07:45 بظ
-
سلام به همگی و وقت تون بخیر :)
می خواستم یک برنامه رو توی اوبونتو بوسیلهی C++ اجرا کنم ولی
اطلاع کمی راجع به دستورات اوبونتو دارم :(
مثلا نمیدونم که فایل makefile رو چه جوری اجرا کنم :(
اینجا میتونم آدرس سایت رو بفرستم که اگه کسی بلده، کمی راهنماییام بکنه؟
چون قوانین مربوط به لینک دادن سایتها برایم باز نشد که ببینم قوانین چیه! :o
خیلی ممنونم ... :)
-
سلام به همگی و وقت تون بخیر :)
می خواستم یک برنامه رو توی اوبونتو بوسیلهی C++ اجرا کنم ولی
اطلاع کمی راجع به دستورات اوبونتو دارم :(
مثلا نمیدونم که فایل makefile رو چه جوری اجرا کنم :(
اینجا میتونم آدرس سایت رو بفرستم که اگه کسی بلده، کمی راهنماییام بکنه؟
چون قوانین مربوط به لینک دادن سایتها برایم باز نشد که ببینم قوانین چیه! :o
خیلی ممنونم ... :)
برای اجرای make کافی دستور make را در ترمینال بزنید.
کامپایلر هم معمولا g++ است.
-
سلام alend ... ):P
به داخل مسیر فایلا رفتم و دو تا فایل میک داره،
یکی makefile برای مک و یکی هم makefile_lired برای اوبونتو؛
دستور make رو هم زدم ولی خطا می ده و می گه ...
mpic++ -c -std=c++14 -Ofast src/estimators.cpp -o src/estimators.o
make: mpic++: No such file or directory
make: *** [makefile:13: src/estimators.o] Error 127
به نظرت مشکل کجایه؟ :-k
سلام 🇬🇧بریتانیای کبیر🇬🇧 :)
نمیدونم که منظور جملهی اولتون رو درست فهمیدم یا نه؟ :-k
ویرایش رو زدم و از اون علامته استفاده کردم و دارم مینویسم ... :biggrin:
خب سایتش اینه ...
https://www.ramamurti.com/adith/PIMC/
اگه درست فهمیده باشم، توی توضیحاتش گفته که
سه نرم افزار نصب بشه و کد با GNU فعال بشه و دادههای به دست اومده رو با پایتون رسم کنیم :-?
درسته؟ ... :-k
-
درود.
خواهشا خروجی هارو در تگ کد که دکمش # هست بزارید، دکمش در بالای پنجره متنی پاسخه. همین پرنجره ای که توش مینویسین و ارسال میکنین، فرسته خود را ویرایش کنید و خروخی رو در تگ کد بذارید.
وبگاهه اگه داره فرایند کامپایل یک نرم افزار آزادو شرح میده مشکلی نیست.
اگه بگید چه نرم افزاری را میخواید کامپایل کنید خیلی بهتر میشه کمکتون کرد.
-
منظور من به صورت زیر بود
mpic++ -c -std=c++14 -Ofast src/estimators.cpp -o src/estimators.o
make: mpic++: No such file or directory
make: *** [makefile:13: src/estimators.o] Error 127
این برنامهای که شما فرستادید ۶ سال هست که دیگه توسعه داده نمیشه، بهتر ازش استفاده نکنید، بگید چی کار میخواید بکنید تا ببینیم برنامهای در مخازن هست که کاری که شما میخواید رو انجام بده یا نه.
-
-
-
ویرایش:
خب تونستم بسازمش. قبل از ساخت باید بسته های زیر را نصب کنید. ممکنه بر اساس توزیع شما نام بسته ها فرق کنه.
libboost1.83-dev
libgsl-dev
mpich
با دستور زیر بسته های زیر را نصب کنید،
sudo apt update; sudo apt install libboost1.83-dev libgsl-dev mpich
و بعد در پایانه دستور make را بزنید.
ولی باز هم میگم، این برنامه خیلی قدیمیه و موقع اجراء پروندهی کامپایل شدهش هم برای من خطا میداد. اگه خواستید، پروندهی کامپایل شدهشو براتون در زیر گذاشتم. من با هر دوتا پروندهی make امتحان کردم و در هر دوتا خطا داد و پروندهی اجرائی بدون کاربر بود. خطایی هم که داد از خود برنامه نبود بلکه از سامانه عامل بود و مشکل از کتابخانه های اشتراکی بود که چون این برنامه قدیمی هست و در مخازن هم نیست طبیعی هم هست. تا میتونید از بسته های داخل مخزن استفاده کنید.
اولیش برای پروندهی makefile هست و دوم برای makefile_lired
-
سلام دوباره :)
خیلی ممنونم که وقت گذاشتی و اینو بررسی کردی =D>
خیلی سریع تونستی انجام بدی =D>
ما هم با ۱۰۰۱ بدبختی، بالاخره اینو اجرا کردیم ;D
چون اصلا لینوکس بلد نیستم ولی از اینترنت کمک گرفتیم و قدم قدم جلو رفتیم [-o<
و دیروز همین خروجی رو به دست آوردم و چیزی برای نمایش نداشت همش به خودم میگفتم که اشتباهه #-o
خلاصه بگم گه قضیه چیه و بعدش چند تا سوال داشتم که بیزحمت، یکی یکی جواب بدی ;D
همونطور که توی اون سایت اشاره کرده،
توی این کار شبیه سازی قراره که یک سری از ذرات که معادل اتم هستند رو توی مثلا یک جعبه
قرار بدیم و انرژي او حالت رو حساب کنیم و بعد دوباره همون تعداد ذرات رو توی مکان دیگهای از جعبه
قرار بدیم و این کار رو برای تعداد دفعات زیاد انجام بدیم تا بهترین حالت ذرات (که انگار میانگینی از
همهی حالتها است) رو به دست بیاریم و بعدش با استفاده از اون، کمیتهای فیزیکی مثل چگالی و انرژی و ...
رو پیدا کنیم. به زبان ریاضی یعنی میخوام یک انتگرال رو برای تعداد دفعات زیاد از مکان متفاوت
این ذرات حل کنم و کمیتها رو برای اون محاسبه کنم ...
توی این سایت هم، طرف نمونهای از این کار رو انجام دادش که میخواستیم ببینیم
چه جوری انجام داده و بعدش به کار خودمون تعمیم بدیم ... O:)
حالا بریم سراغ سوالا ;D
۱- گفتی که برنامه قدیمی و توسعه داده نمیشه؛
یعنی برنامه نوشته شده منظورت بود یا کتابخونهها؟
برای کار با اون باید برنامه تغییر داده بشه یا از کتابخونههای دیگهای استفاده بشه یا کلا اینو کنار بزاریم؟ ;D
۲- توی فایل README نوشته که makefile مربوط به مک هستش و makefile_lired مربوط به لینوکس.
یعنی هر کدوم از اینا برای اجرای فایل make توی سیستم عاملی هست که اشاره کرده؟
makefile رو توی لینوکس با دستوری که توی سایت گفته بود یعنی
با To run the program: mpirun -n nprocs /path/to/executable start_id processors_per
و توضیحاتش اجرا کردیم و فابلای پوشهی خروجی (یعنی output که شامل فایلای نتیجه هستش)، هیچی رو نشون نمیدان.
برای همین اونو حذف کردم و makefile_lired رو به makefile تغییر دادم که لینوکس اونو بشناسه
ولی بازم نتیجه این بود که خروجی هیچی نشون نمیداد ! :o
تو هم همینطوری انجام دادی؟ :-k
۳- یکی گفتش که برای اینکه خود دانشجوها هم کاری کرده باشن و این فایلا رو به راحتی به دست نیارن،
تولید کننده مییاد و کمی تغییرات توی برنامه ایجاد میکنه تا فایل درست اجرا نشه، درسته؟ :o
نمونهاش در فایل makefile بود که به جای تب از فاصله استفاده کرده بود.
هرچند که خود ترمینال اینو هشدار دادش تا درست کنیم. :o
۴- فایلای سیسیپی رو کامل بلد نیستم بخونم ولی فکر میکنم که درست نوشته شدن.
پیشنهادی برای اجرای اونا داری؟ مثلا تغییر کنابخونه یا ... ???
یا کلا اینو کنار بزاریم و بریم گریه کنیم ... ;D ;D ;D
۵- و سوال آخر اینکه ;D
فایل README گفتش که یکی از فایلا برای مک هستش و یکی برای لینوکس،
به نظرت میشه اینو به هوش مصنوعی داد و بهش بگم که makefile ویندوز رو بهم بده؟ ???
ببخشید طولانی شد
خیلی ازت ممنونم ... :KS
-
پاسخ ها به ترتیب
-۱ اصلا تا میتونید از برنامه های خارج از مخازن رسمی اسنفاده نکنید. مخزن غیر رسمی اضافه نکنبد و بسته ای رو به صورت دستی نصب نکنید،
همهی اینا باعث ناپایداری و ناسازگاری میشه. بله برنامه قدیمیه و نباید ازش استفاده کرد.
-۲ من اول بسته هایی که برای کامپایل نیاز بود نصب کردم و بعد نرم افزار را کامپایل کردم، ولی باز هم یک ناسازگاری وجود داشت، برنامه خیلی قدیمیه. کارایی که کردمو در بالا گفتم.
-۳
نمونهاش در فایل makefile بود که به جای تب از فاصله استفاده کرده بود.
بله اون مشکلو فهمیدم ولی خب نه، اون فرد اشتباه میگه.
-۴ من جستوجو کردم و برنامه زیر را پیدا کردم، امیدوارم بدردتون بخوره.
https://github.com/DelMaestroGroup/pimc
-۵ ؛/ به احتمال زیاد برای ویندوز هم کار کنن.
-
سلام دوباره
خیلی ممنونم برای جوابها و پیشنهادت ;)
۱- اول از جواب آخری شروع کنم ;D
فرض کنیم این makefile توی ویندوز جواب بده،
باید همین نرمافزارها رو برای ویندوز نصب کنم تا بتونم خروجی رو بررسی کنم؟ :-k
و از اونجاییکه گفتی برنامه نوشته شده قدیمی هست و تداخل ایجاد کرده، ممکنه توی ویندوز جواب بده؟ :-k
۲- برای سایتی که معرفی کردی ممنونم.
تازه یام اومد که توی گتهاپ یه جستوجویی بکنم :biggrin:
چند تا PIMC دیگه هم دیدم که داره. به نظرت همه اینا برنامههای شبیه هم دارن؟ :-k
چون داریم روی نتایجی که اون اولی درآورد کار میکنیم و اگه بقیه شبیهش باشن خوبه ???
۳- اگه درست منظورت رو فهمیده باشم، گفتی که چون برنامه قدیمیه (یعنی با مخازن قبلی
که بروز نشده کار میکنه)، الان با برنامهها داخل مخزن تداخل پیدا کرده و اجرا نمیشه، درسته؟ :-k
خب حالا باید برنامه رو تغییر بدیم تا با برنامههای داخل مخزن هماهنگ بشه تا جواب بگیریم؟ ???
چون کار ما خیلی به این برنامه وابسته هست! و ظاهر برنامه نوشته شده هم اینه که
کمی سخته تا دوباره نوشته بشه ... [-o<
یا اگه پیشنهاد دیگهای (با توجه به این چیزایی که گفتم) داری، بگی خوشحال میشم O:)
بازم خیلی ممنونم ... ;)
-
من با کاری که شما میخواید بکنید آشنا نیستم و دانشی هم در این زمینه ندارم. اگه میتونید با برنامه کار کنید و خروجی بهتون میده خب پس درسته. برای برنامه های شبیه هم همینطور، باید برید ببینید که نحوه کارشون چجوریه و چه فرقایی با این یکی دارن، من زیاد نمیتونم کمکتون کنم، شاید یکی دیگه در این انجمن بتونه.
برای ویندوز فقط باید یک پایانه باز کنید و پروندهی اجرایی PIMC را فراخوانی کنید.
- اگه درست منظورت رو فهمیده باشم، گفتی که چون برنامه قدیمیه (یعنی با مخازن قبلی
که بروز نشده کار میکنه)، الان با برنامهها داخل مخزن تداخل پیدا کرده و اجرا نمیشه، درسته؟
اگه شما میتونید اجراش کنید و خروجی مورد نظرو میگیرید پس درسته.
-
نه، برای منم
توی خروجی این برنامه چیزی نشون نمیده :-k
ممنونم برای
راهنماییها و کمکایی که کردی O:) =D> :KS