سؤال

لذلك يبدو أن هناك مشكلة مع جنو تجعل دولار(البدل) وظيفة حفظ دليل مفتوحة على ويندوز.انظر (unasnwered) بوست "جعل هو عقد الدليل المفتوح".جوجل لا تقدم الكثير من المعلومات حول هذا الموضوع.

باختصار:Makefile يستخدم $(البدل) وظيفة في بعض نقطة, ويبقى الدليل المفتوح ، والتي عادة ما يمنع "جعل نظيفة" القاعدة للقيام بعملها بشكل صحيح.إعادة تشغيل "جعل نظيفة" للمرة الثانية عادة ما يحل.

أنا باستخدام جنو جعل نسخة 3.81 تحت معيار دوس مربع.صاحب المنصب مرتبطة أعلاه باستخدام Cygwin.

أي شخص العثور على حل لهذا ؟

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

المحلول 2

لم أجد الحل المشكلة التي على الأقل يتيح لي العمل في السلام.

المشكلة كانت أن $(wildcard) وظيفة المستخدمة في جمع مصادر الملفات.بلدي نظيفة القاعدة إلا حذف الدليل - لا حاجة لجمع أن تأخذ من فضلك.لذلك أنا وضعت أساسا جزء من Makefile التي تحتاج إلى جمع مصادر الملفات في بيان الشرطية:

# The clean rule is always parsed
clean:
    rm -rf $(OUTPUT_DIRECTORY)

# The compile rule is only interpreted if we did not invoke 'make clean'. We
# can test the value of $(MAKECMDGOALS) for that:
ifeq ($(filter $(MAKECMDGOALS),clean),)

SOURCE_FILES := $(wildcard ...)

compile:
    g++ $(SOURCE_FILES) ...

endif

نصائح أخرى

ويبدو وكأنه تسرب ملف واصف، كل الحق - غير مؤذية للعمليات جدا، قصيرة الأجل (مثل جعل) على UNIX، ولكن الصحيح PITA على ويندوز

ولما كان هذا هو زعم خطأ في جعل، على عكس مشكلة مع استخدامه، وينبغي التصدي لها أولا التحقق من أنه لا يزال موجودا عندما بنيت من المصدر على أحدث نسخة المنبع، ومن ثم من قبل <وأ href = " http://savannah.gnu.org/bugs/؟group=make "يختلط =" نوفولو noreferrer "> تقديم تقرير علة مع GNU جعل المشروع (أو مع أي موزع معه لديك عقد الدعم المناسب )، أو الغوص في المصدر ومحاولة لإصلاح ذلك بنفسك.

وانها لن تؤذي لمحاولة إعادة إنتاج على لينكس - التحقق من وجود ملف التسريبات واصف هي أسهل بكثير هنا، كما يمكن للمرء أن مجرد إلقاء نظرة على /proc/self/fd (أو، للطفل جعل، /proc/$PPID/fd) عن الأشياء التي لا تنتمي.

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