|
|
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - نسخهی قابل چاپ |
|
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - فوژان - ۱۵ مهر ۱۳۹۱ ۰۶:۵۴ ب.ظ
سلام دوستان من یه برنامه مولتی ترد نوشتم ولی نمیدونم که چه طوری باید تویه لینوکس به همراه بقیه ی فایل های cpp که بقیه برنامه هام توش هست اجرا کنم هر کدوم رو جدا جدا بلدم ولی با هم بلد نیستم مثلا یه برنامه ترد رو اینطوری نوشتم و کامپایل کردم g++ -lpthred hello.cpp و یا چندتا برنامه رو اینطوری اجرا کردم g++ hello.cpp main.cpp googby.cpp ولی این دوتا با هم چه طوری باید بنویسم؟ |
|
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - a.hooshmand - 15 مهر ۱۳۹۱ ۰۷:۱۵ ب.ظ
++g فقط برنامه شما را کمپایل می کند ولی آنرا اجرا نمی کند اگر نامی برای برنامه خروجی مشخص نکنید (کاری که شما انجام داده اید) جی سی سی از نام پیشفرض a استفاده می کند برای اجرا برنامه کمپایل شده از مسیر جاری تایپ کنید کد: ./aاز سوییچ o- می توانید برای مشخص کردن نام برنامه خروجی استفاده کنید مثلا: کد: g++ hello.cpp -o filenameحال برای اجرا: کد: ./filename |
|
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - esi - 15 مهر ۱۳۹۱ ۰۷:۱۷ ب.ظ
به این یه نیگاه بنداز : مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید. برنامه هارو تو emac نوشتی ؟؟ پارامتر Wall رو چرا تو جلوی دستور برای پیوند فایلا و پارامتر o- رو برای تولید فایل خروجی یکتا یادت نره البته راه دیگه ای هم هست برای پیوند فایل ها اونم به صورت ایجاد External هستش، همین رو بتونی راحت تره |
|
RE: اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - فوژان - ۱۵ مهر ۱۳۹۱ ۰۷:۲۴ ب.ظ
با vim تویه لینوکس نوشتم و تو بش با اون g++ کامپایل میکنم و اون فایله اوت رو هم بلدم اجرا کنم دوستان میدونم که o- چی کار میکنه مشکل من اینه که نمیدونم چطوری اون برنامه ترد و اون cpp هارو با هم پیوند بزنم یعنی وقتی مینوسیم g++ -lpthread main.cpp hello.cpp goodby.cpp میگه hello.cpp و goodby.cpp no such a file or a directory |
|
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - a.hooshmand - 15 مهر ۱۳۹۱ ۰۷:۳۷ ب.ظ
دقیقا پیام خروجی را اینجا بنویس c- بدون لینک کردن برنامه فایلها را مستقل به ابجکت تبدیل می کند و سپس می توانی همه را با هم لینک کنید. //////////////////////////// یک راه ساده به شرط دردسترس بودن تمام لایبرری های مورد نیاز و فقط یک تابع main در برنامه های مسیر جاری: این دستورات را امتحان کن: کد: g++ -c *.cpp |
|
RE: اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - فوژان - ۱۵ مهر ۱۳۹۱ ۰۷:۵۵ ب.ظ
اینا رو بلدم من این رو میزنم g++ -lpthread main_server.cpp ClientSocket.cpp main_client.cpp ServerSocket.cpp Socket.cpp ولی توی خروجی به جایه یه فایله اوت ارور میده میگه ClientSocket.cpp: no such file or directory ServerSocket.cpp: no such file or directory: Socket.cpp: no such file or directory |
|
RE: اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - Lonely Palm - 16 مهر ۱۳۹۱ ۰۲:۵۰ ق.ظ
ببینید اگر می خواید همه ی این پروسس ها یه جا برن تو بک گراند باید یه & بین این ها بگذارید اینو امتحان کنید نتیجه رو بگین ببینیم جواب گرفتین یا نه کد: g++ -lpthread main_server.cpp & g++ -lpthread ClientSocket.cpp & g++ -lpthread main_client.cpp & g++ -lpthread ServerSocket.cpp & g++ -lpthread Socket.cppالبته این فقط یه حدسه بعد از زدن این دستور، یه jobs بگیرین ببینین الآن آیا اینا run هستن یا خیر البته چند تا نکته مبهمه برام : تو bash ما عملا مکانیزم thread نداریم ( با شک و تردید میگما مطمئن نیستم ) عوضش jobs ها رو داریم، یعنی همه پروسس هستند که می تونن توی پس زمینه run بشن پس ما نمی تونیم تو bash ، یه برنامه multithread داشته باشیم و عملا ما باید parallel processing انجام بدیم اگر بخوایم parallel processing انجام بدیم یه روشی داره این شکلی : کد: cat listofthings.txt | parallel --max-procs=5 --group 'echo "Thing: {}"'فرض کنید قراره هر کدوم از این فایل ها رو جدا جدا اجرا کنید، اونجوری تو هر خط فایل متنی بنویسید دستورات رو |
|
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - a.hooshmand - 16 مهر ۱۳۹۱ ۰۹:۲۰ ب.ظ
این را تست کن g++ -I . -lpthread main_server.cpp ClientSocket.cpp main_client.cpp ServerSocket.cpp Socket.cpp مفهوم no such file or directory این هست که چنین فایلی در دسترس نیست. (در مسیر جاری یا مسیر لایبری های تعریف شده) محل این فایلها را پیدا کن با I- به کمپایلر مسیر فایلها را به کمپایلر اعلام کن. |
|
RE: اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - Shiny_Star - 18 مهر ۱۳۹۱ ۰۹:۴۶ ق.ظ
تو مسیر جایی که فایل هات قرار داره برو و دستور زیر رو بنویس g++ -lpthread main.cpp hello.cpp goodby.cpp -o 1 |
|
RE: اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید) - فوژان - ۱۸ مهر ۱۳۹۱ ۰۱:۵۴ ب.ظ
سلام دوستان ببخشید که دیر اومدم مشکل رفع شد نمیدونم چرا اون ارور رو میداد ولی با make file اوکی شد اینم کده میک فایلش کد: # Makefile for the socket programming example |