زمان کنونی: ۲۶ اردیبهشت ۱۴۰۳, ۱۱:۱۶ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)

ارسال:
۱۵ مهر ۱۳۹۱, ۰۶:۵۴ ب.ظ
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)
سلام دوستان من یه برنامه مولتی ترد نوشتم ولی نمیدونم که چه طوری باید تویه لینوکس به همراه بقیه ی فایل های cpp که بقیه برنامه هام توش هست اجرا کنم
هر کدوم رو جدا جدا بلدم ولی با هم بلد نیستم
مثلا یه برنامه ترد رو اینطوری نوشتم و کامپایل کردم
g++ -lpthred hello.cpp
و یا چندتا برنامه رو اینطوری اجرا کردم
g++ hello.cpp main.cpp googby.cpp
ولی این دوتا با هم چه طوری باید بنویسم؟
۱
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: mohammadali1990
ارسال:
۱۵ مهر ۱۳۹۱, ۰۷:۱۵ ب.ظ
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)
++g فقط برنامه شما را کمپایل می کند ولی آنرا اجرا نمی کند
اگر نامی برای برنامه خروجی مشخص نکنید (کاری که شما انجام داده اید) جی سی سی از نام پیشفرض a استفاده می کند
برای اجرا برنامه کمپایل شده از مسیر جاری تایپ کنید

کد:
./a
///////////////////////////////
از سوییچ o- می توانید برای مشخص کردن نام برنامه خروجی استفاده کنید

مثلا:
کد:
g++ hello.cpp -o filename

حال برای اجرا:
کد:
./filename
۱
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: mohammadali1990 , m450ud
ارسال:
۱۵ مهر ۱۳۹۱, ۰۷:۱۷ ب.ظ (آخرین ویرایش در این ارسال: ۱۵ مهر ۱۳۹۱ ۰۷:۱۹ ب.ظ، توسط esi.)
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)
به این یه نیگاه بنداز :

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

برنامه هارو تو emac نوشتی ؟؟
پارامتر Wall رو چرا تو جلوی دستور برای پیوند فایلا و پارامتر o- رو برای تولید فایل خروجی یکتا یادت نره
البته راه دیگه ای هم هست برای پیوند فایل ها اونم به صورت ایجاد External هستش، همین رو بتونی راحت تره

حرفی برای گفتن نیست .... باید تلاش کرد وبس .
۱
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: mohammadali1990
ارسال:
۱۵ مهر ۱۳۹۱, ۰۷:۲۴ ب.ظ (آخرین ویرایش در این ارسال: ۱۵ مهر ۱۳۹۱ ۰۷:۲۶ ب.ظ، توسط فوژان.)
RE: اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)
با vim تویه لینوکس نوشتم و تو بش با اون g++ کامپایل میکنم و اون فایله اوت رو هم بلدم اجرا کنم
دوستان میدونم که o- چی کار میکنه مشکل من اینه که نمیدونم چطوری اون برنامه ترد و اون cpp هارو با هم پیوند بزنم یعنی وقتی مینوسیم
g++ -lpthread main.cpp hello.cpp goodby.cpp
میگه
hello.cpp و goodby.cpp
no such a file or a directory
۱
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: mohammadali1990
ارسال:
۱۵ مهر ۱۳۹۱, ۰۷:۳۷ ب.ظ
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)
دقیقا پیام خروجی را اینجا بنویس
c- بدون لینک کردن برنامه فایلها را مستقل به ابجکت تبدیل می کند و سپس می توانی همه را با هم لینک کنید.
////////////////////////////
یک راه ساده به شرط دردسترس بودن تمام لایبرری های مورد نیاز و فقط یک تابع main در برنامه های مسیر جاری:

این دستورات را امتحان کن:
کد:
g++ -c *.cpp
g++ *.o
./a
البته به جای * می توانی یکی یکی اسم فایلها را هم نام ببری
۱
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: mohammadali1990
ارسال:
۱۵ مهر ۱۳۹۱, ۰۷:۵۵ ب.ظ
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
۱
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: mohammadali1990
ارسال:
۱۶ مهر ۱۳۹۱, ۰۲:۵۰ ق.ظ (آخرین ویرایش در این ارسال: ۱۶ مهر ۱۳۹۱ ۰۲:۵۱ ق.ظ، توسط Lonely Palm.)
RE: اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)
ببینید اگر می خواید همه ی این پروسس ها یه جا برن تو بک گراند باید یه & بین این ها بگذارید
اینو امتحان کنید نتیجه رو بگین ببینیم جواب گرفتین یا نه

کد:
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: {}"'
تک تک این کامند ها رو جدا جدا هر کدوم توی یه خط بریزین توی یه فایل متنی بدین به خورد این کامنده ببینیم چی میشه نتیجه ش
فرض کنید قراره هر کدوم از این فایل ها رو جدا جدا اجرا کنید، اونجوری تو هر خط فایل متنی بنویسید دستورات رو
۱
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: mohammadali1990
ارسال:
۱۶ مهر ۱۳۹۱, ۰۹:۲۰ ب.ظ (آخرین ویرایش در این ارسال: ۱۶ مهر ۱۳۹۱ ۰۹:۳۴ ب.ظ، توسط a.hooshmand.)
اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)
این را تست کن

g++ -I . -lpthread main_server.cpp ClientSocket.cpp main_client.cpp ServerSocket.cpp Socket.cpp

مفهوم
no such file or directory
این هست که چنین فایلی در دسترس نیست. (در مسیر جاری یا مسیر لایبری های تعریف شده)
محل این فایلها را پیدا کن با I- به کمپایلر مسیر فایلها را به کمپایلر اعلام کن.
۰
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال:
۱۸ مهر ۱۳۹۱, ۰۹:۴۶ ق.ظ
RE: اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)
تو مسیر جایی که فایل هات قرار داره برو و دستور زیر رو بنویس
g++ -lpthread main.cpp hello.cpp goodby.cpp -o 1
۰
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال: #۱۰
۱۸ مهر ۱۳۹۱, ۰۱:۵۴ ب.ظ (آخرین ویرایش در این ارسال: ۱۸ مهر ۱۳۹۱ ۰۱:۵۸ ب.ظ، توسط فوژان.)
RE: اجرای برنامه در لینوکس ( لطفا سریعتر راهنمایی کنید)
سلام دوستان ببخشید که دیر اومدم
مشکل رفع شد نمیدونم چرا اون ارور رو میداد ولی با make file اوکی شد اینم کده میک فایلش
کد:
# Makefile for the socket programming example
#

simple_server_objects = ServerSocket.o Socket.o  -lpthread main_server.o
simple_client_objects = ClientSocket.o Socket.o  -lpthread  main_client.o


all : simple_server simple_client

simple_server: $(simple_server_objects)
    g++ -o simple_server $(simple_server_objects)


simple_client: $(simple_client_objects)
    g++ -o simple_client $(simple_client_objects)


Socket: Socket.cpp
ServerSocket: ServerSocket.cpp
ClientSocket: ClientSocket.cpp
simple_server_main: simple_server_main.cpp
simple_client_main: simple_client_main.cpp


clean:
    rm -f *.o simple_server simple_client
۰
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
 سپاس‌گزاری شده توسط: Lonely Palm


موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  کمک برای شروع برنامه نویسی seyed ehsn ۲۱ ۱۴,۵۵۳ ۲۴ بهمن ۱۴۰۲ ۰۵:۱۰ ب.ظ
آخرین ارسال: maryamjafari63
  رودمپی برای برنامه نویسی Doctorwho ۱ ۱,۸۲۷ ۲۵ آذر ۱۴۰۰ ۰۳:۰۲ ق.ظ
آخرین ارسال: one hacker alone
  استخدام برنامه نویس یا کارآموز برنامه نویسی سی شارپ Hesitant_Girl ۰ ۱,۵۴۰ ۲۰ شهریور ۱۴۰۰ ۱۲:۰۲ ب.ظ
آخرین ارسال: Hesitant_Girl
  رودمپی برای یادگیری برنامه نویسی Doctorwho ۰ ۱,۶۱۹ ۲۳ اردیبهشت ۱۴۰۰ ۱۱:۲۲ ق.ظ
آخرین ارسال: Doctorwho
  درخواست برنامه برای اردینو در iot seokheiry ۱ ۳,۰۴۹ ۱۳ بهمن ۱۳۹۹ ۱۲:۵۵ ب.ظ
آخرین ارسال: iot-programer
  کمکم لطفا پایان نامه ارشد mahtab1928 ۰ ۱,۹۳۰ ۰۹ آبان ۱۳۹۹ ۰۶:۳۹ ب.ظ
آخرین ارسال: mahtab1928
  چگونه این خطا را موقع اجرای sql server 2014 رفع کنم ؟ farahnaz ۲ ۲,۷۰۵ ۱۹ مهر ۱۳۹۹ ۰۲:۱۸ ق.ظ
آخرین ارسال: farahnaz
  کدام زبان برنامه‌نویسی بهترین انتخاب است؟ elecomco ۲ ۲,۸۱۷ ۱۰ شهریور ۱۳۹۹ ۰۵:۱۶ ب.ظ
آخرین ارسال: kilookiloo
Sad مشکل در برنامه نویسی شیء گرا Xialu ۰ ۲,۰۰۹ ۰۵ شهریور ۱۳۹۹ ۱۲:۰۰ ب.ظ
آخرین ارسال: Xialu
  سن واقعی بدن خود را حساب کنید fahimehazimi ۷۱ ۳۵,۹۷۰ ۲۰ مرداد ۱۳۹۹ ۰۴:۱۰ ب.ظ
آخرین ارسال: gerdoo_456

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close