كيفية وقف GHC من توليد ملفات المتوسطة؟
سؤال
عند تجميع ملف مصدر هاسكل عبر ghc --make foo.hs
GHC يترك دائما وراء مجموعة متنوعة من الملفات وسيطة أخرى من foo.exe
. هذه هي foo.hi
وfoo.o
.
وأنا كثيرا ما ينتهي الأمر إلى حذف .hi وملفات .O لتجنب التبعثر حتى المجلدات.
هل هناك خيار سطر الأوامر لGHC لا تترك وراءها ملفاتها المتوسطة؟ (ردا على سؤال عن #haskell، كانت أفضل إجابة حصلت ghc --make foo.hs && rm foo.hi foo.o
.
المحلول
ولقد ذهبت من خلال مستندات GHC قليلا، وهناك لا يبدو أن يكون وسيلة المدمج في لإزالة الملفات المؤقتة تلقائيا - بعد كل شيء، GHC تحتاج هذه الملفات المتوسطة لبناء قابل للتنفيذ النهائي، و وجودهم يسرع تجميع العام عند GHC يعلم أنه ليس لديه إلى إعادة ترجمة وحدة نمطية.
نصائح أخرى
وبلدي سير العمل المعتاد هو استخدام عصابة بدلا من الشركة القابضة العامة مباشرة. يحدد هذا الخيار outputdir وفي مجلد البناء المناسب ويمكن أن تفعل أشياء مثل الوثائق بناء الحدوق بالنسبة لك. كل ما عليك هو تحديد الملف .cabal للمشروع الخاص بك ثم يقول عصابة تثبيت أو عصابة بناء بدلا من تشغيل الشركة القابضة العامة مباشرة. منذ تحتاج إلى متابعة هذه العملية في النهاية إذا كنت تريد من أي وقت مضى لتبادل عملك على hackage، بل هو ممارسة جيدة للوصول الى ويساعد على إدارة تبعيات حزمة كذلك.
GHC لديها الآن no-keep-hi-files
الخيارات و no-keep-o-files
. انظر هنا لمزيد من المعلومات.
ويمكنك تعيين -hidir ل/ ديف / لاغية، كما أعتقد، ارسال جنود الى هناك. أيضا، فإن الخيار -fno رمز عموما إيقاف الكثير من الانتاج. قد ترغب فقط في استخدام كابال.
وتبين أن استخدام -hidir / -odir / -outputdir ليس جيدا. / ديف / لاغية هو ملف، وليس دليلا. انظر http://www.haskell.org/pipermail/xmonad/2010 -مايو / 010182.html