استخدام Cygwin لتجميع برنامج C؛خطأ في التنفيذ

StackOverflow https://stackoverflow.com/questions/1013651

  •  06-07-2019
  •  | 
  •  

سؤال

أنا مسجل في دورة ماجستير علوم الكمبيوتر.تستخدم الدورة لغة C ويريد المدرب منا أن نستخدمها سيجوين لتجميع البرامج إذا كنا نستخدم windows.

لقد قمت بتحميل وتثبيت سيجوين ولقد تأكدت من أنني قمت بتثبيت مترجم دول مجلس التعاون الخليجي.

لكني لا أعرف إلى أين أذهب من هنا.أحتاج إلى تجميع ملف مصدر واحد يحتوي على تضمين أساسي.

#include <stdio.h> 

لنفترض أن الملف موجود على سطح المكتب (ليس كذلك، ولكن من أجل الجدال).كيف يمكنني الانتقال إلى سطح المكتب من bash Shell؟أفترض أنه بمجرد انتقالي إلى الموقع الصحيح في bash، أقوم ببساطة بتنفيذ ما يلي:

gcc myProgram.c -o myProgram

تحديث:باتباع التعليمات المختلفة المنشورة أدناه، تمكنت من تجميع البرنامج؛اشكرك على هذا.ولكن عندما أقوم بتنفيذ الثنائي الناتج أحصل على ما يلي.كيف يمكنني تجميع هذا البرنامج أو تنفيذه حتى لا أتلقى الخطأ؟شكرا مجددا.

This application has failed to start because cygwin1.dll was not found. Re-installing the application may fix this problem.

هل كانت مفيدة؟

المحلول

وعندما تبدأ في سيغوين، وأنت في $ الرئيسية الخاصة بك، كما هو الحال في يونيكس عموما، التي تقوم بتعيين إلى c: / سيغوين / الوطن / $ إسمك افتراضيا. لذلك كنت قد وضعت كل شيء هناك.

ويمكنك أيضا الوصول إلى ج: بالسيارة من سيغوين من خلال / cygdrive / ج / (على سبيل المثال / cygdrive / ج / المستندات ANB إعدادات / يورنامي / سطح المكتب)

نصائح أخرى

فيما يتعلق بسؤالك المحدث حول مفقود cygwin1.dll.

من فحص محطة Cygwin،

ls /usr/bin/cygwin1.dll

إذا لم يكن موجودًا (أشك في ذلك)، فهذا يعني أن التثبيت لم يتم بشكل صحيح.

ثم تحقق من طريقك باستخدام

echo $PATH

هذا سوف يعطي : قائمة منفصلة من المسارات.يجب أن تحتوي على /usr/bin.إذا وجدت أن المفقودين إضافته مع،

export PATH=/usr/bin:$PATH

أخيراً،

  • أتمنى أنك تستخدم Cygwin من محطة cygwin (الرمز الأخضر + الأسود الصغير المثبت مع Cygwin)، أو MinTTY (إذا قمت بتثبيته).
  • ولم تقم بنقل ملف EXE المترجم إلى جهاز آخر لم يتم تثبيت Cygwin عليه (إذا قمت بذلك، فستحتاج إلى حمل cygwin1.dll إلى هذا الجهاز - احتفظ به في نفس المجلد مثل ملف EXE المترجم) .

وابحث عن (أي، cd ل)

/cygdrive/c/

والتي عادة ما تكون C:\ بك


وننظر أيضا في عن طريق سيغوين ، في مقدمة يفهكر (يونيو / 2006) ، وهذا < وأ href = "http://www.physionet.org/physiotools/cygwin/" يختلط = "نوفولو noreferrer"> الصفحة بيوميد في PhysioNet .

وفيما يتعلق خطأ cygwin1.dll لم يتم العثور على حل ولقد استخدمت لمدة 8 سنوات على الأقل هو إضافة سيغوين بن الدلائل إلى نهاية بلدي %PATH% في جهاز الكمبيوتر -> خصائص -> خيارات متقدمة -> متغيرات البيئة. I إضافتها إلى نهاية المسار حتى في بلدي العمل العادي، وتفتيشهم آخر، والتقليل من إمكانية الصراعات (في الواقع، لم يكن لدي أي مشاكل مع الصراعات في كل هذا الوقت).

عند استدعاء سيغوين باش شل، هذه الدلائل الحصول إرفاق مسبقا إلى %PATH% يعمل لذلك كل شيء على النحو المنشود في تلك البيئة أيضا.

وعندما لا تعمل في سيغوين قذيفة، يا %PATH% هو:

Path=c:\opt\perl\bin; \
     ...
     C:\opt\cygwin\bin; \
     C:\opt\cygwin\usr\bin; \
     C:\opt\cygwin\usr\local\bin;

وبهذه الطريقة، على سبيل المثال، تم العثور على بيرل ActiveState بيرل لأول مرة عندما كنت لست في شل سيغوين، ولكن وجدت على بيرل سيغوين عندما كنت أعمل في شركة شل سيغوين.

للتلخيص فقط، إليك بعض الأوامر التي تنتقل إلى الدليل وتترجم التعليمات البرمجية باستخدام Cygwin وWindows Vista:

  1. ابدأ تشغيل غلاف Cygwin.
  2. في الموجه، استخدم cd للتغيير إلى الدليل المناسب:

    $ cd /cygdrive/c/Users/nate/Desktop

  3. يستخدم ls لسرد الملفات في الدليل:

    $ ليرة سورية

    بروغ.ج

  4. استخدم ال gcc أمر لتجميع ملف في هذا الدليل:

    $ دول مجلس التعاون الخليجي prog.c -o بروغ

  5. إذا لم ترَ أي أخطاء، فمن المفترض أن تكون قادرًا على تشغيل البرنامج الناتج:

    $ ./البرنامج

تحديث:

بالنسبة ل"Cygwin1.dll not found"خطأ، تعجبني إجابة نيك.يمكنك أيضًا التحقق من ذلك لم يتم العثور على هذه المشاركة ذات الصلة حول cygwin1.dll, ، مما يقترح إضافة c:\cygwin\bin\ إلى Windows PATH الخاص بك.

هناك تعليمات حول كيفية تغيير متغير Windows PATH بالنسبة لنظام التشغيل Windows XP، وفي Vista أعتقد أن الأمر مشابه.

  1. انتقل إلى لوحة التحكم -> النظام
  2. يختار إعدادات النظام المتقدمة
  3. اضغط على متقدم فاتورة غير مدفوعة
  4. انقر فوق متغيرات البيئة
  5. تحت متغيرات النظام, ، أعثر على طريق الدخول وانقر يحرر
  6. يضيف c:\cygwin\bin إلى القائمة، مع التأكد من فصلها عن أية عناصر سابقة بفاصلة منقوطة

إذا لم تكن مريحة مع باش، يمكنك الاستمرار في العمل في أمر ويندوز القياسية (أي DOS) قذيفة.

لهذا العمل يجب إضافة C: \ سيغوين \ بن (أو البديل المحلي) إلى PATH متغير ويندوز

ومع هذا القيام به، يجوز لك:     1) فتح أمر () قذيفة DOS     2) تغيير الدليل إلى الموقع من التعليمات البرمجية (ج :، ثم مسار مؤتمر نزع السلاح \ إلى \ الملف)     3) دول مجلس التعاون الخليجي myProgram.c -o myProgram

وكما ذكر في استجابة نيك ووثائق "عن طريق سيغوين" هو مكان عظيم لمعرفة المزيد.

ويندوز مسار C:\src تحت سيغوين يصبح /cygdrive/c/src

إذا كنت تفعل برنامج -o program.c دول مجلس التعاون الخليجي -mno-سيغوين فإنه سيتم تجميع ما يرام، وأنك لن تحتاج إلى إضافة cygwin1.dll إلى المسار ويمكنك الذهاب للتو قبل وتوزيع للتنفيذ الخاص بك إلى جهاز الكمبيوتر التي لا تتضمن أي سيغوين تثبيت، وسوف لا تزال تعمل. ويساعد هذا الأمل

وتجميع برنامج C باستخدام سيغوين

وسنكون باستخدام مترجم دول مجلس التعاون الخليجي على Cygwin لتجميع البرامج.

1) إطلاق سيغوين

2) تغيير إلى الدليل الذي تم إنشاؤه لهذه الفئة عن طريق كتابة

ومؤتمر نزع السلاح ج: / ويندوز / سطح المكتب

و3) ترجمة البرنامج عن طريق كتابة

ودول مجلس التعاون الخليجي myProgram.c -o myProgram

وعلى دول مجلس التعاون الخليجي أمر استدعاء مترجم دول مجلس التعاون الخليجي لتجميع برنامج C الخاص بك.

هل يمكن أن يكون أفضل حالا تحرير ملف داخل قذيفة سيغوين. وعادة ما لديها دليل المستخدم الافتراضي عند بدء تشغيلها. يمكنك تحرير ملف من قذيفة تفعل شيئا مثل "السادس somefile.c" أو "ايماكس somefile.c". هذا على افتراض السادس أو يتم تثبيت ايماكس في سيغوين.

إذا كنت تريد ملف على سطح المكتب الخاص بك، سيكون لديك للذهاب إلى مسار مماثل (على XP) إلى "/ cygwindrive / ج / \ و \ إعدادات المستندات / فرانك / سطح المكتب" (إذا أسعفتني الذاكرة بشكل صحيح). مؤتمر نزع السلاح لمجرد أن هذا الطريق، وتشغيل الأمر على الملف.

وسيغوين هو بارد جدا! يمكنك تجميع البرامج من أنظمة أخرى (لينكس، على سبيل المثال)، <م> وأنها ستعمل . أنا أتحدث برامج الاتصالات، أو خوادم الويب، حتى.

وهنا هو خدعة واحدة. إذا كنت تبحث في الملف الخاص بك في مستكشف ملفات Windows، يمكنك كتابة "سي دي" في ويندوز باش الخاص بك، ثم اسحب من شريط عنوان مستكشف وفي إطار سيغوين، وسيتم نسخ المسار الكامل! هذا وتعمل في الأمر قذيفة ويندوز وكذلك، من جانب الطريق.

وأيضا: في حين أن "مؤتمر نزع السلاح / cygdrive / ج" هو المسار الرسمي، أنه لن يقبل أيضا "سي دي ج:" كاختصار. قد تحتاج إلى القيام بذلك قبل سحب في بقية المسار.

يجب العثور على الملف stdio.h تلقائيا، كما أنه سيكون على النظام التقليدي.

وهذا الملف (cygwin1.dll) هو الاعتماد سيغوين مماثلة لQT dependency.you يجب نسخ هذا الملف والملفات المماثلة التي تظهر في مثل هذا الخطأ الرسائل، من "سيغوين / بن" إلى مجلد البرنامج. كما يكون ذلك ضروريا لتشغيل في جهاز كمبيوتر آخر التي لم سيغوين!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top