دلفي 7 يشكو من عدم العثور على الملفات
سؤال
لقد حصلت على ملف BPG قمت بتعديله لاستخدامه كملف إنشاء لخادم البناء الآلي الخاص بشركتنا.لكي أتمكن من العمل كان علي أن أتغير
Uses * Uses unit1 in 'unit1.pas' * unit1 unit2 in 'unit2.pas' * unit2 ... * ...
في ملف DPR لتشغيله دون أن يعطيني المترجم بعض المعلومات حول عدم العثور على Unit1.pas.هذا أمر مزعج لأنني أرغب في استخدام ملف BPG لرؤية العناصر الموجودة في مشروعي فعليًا وفي كل مرة أقوم بإضافة وحدة جديدة، يتم رفعها تلقائيًا الموجودة في "unitx.pas" إلى ملف DPR الخاص بي.
أنا أركض make -f [then some options]
, ، فإن ملفات DPR التي أقوم بتجميعها ليست موجودة في نفس الدليل مثل ملف الصنع، لكنني لست متأكدًا من أن هذا الأمر مهم.كل شيء يجمع بشكل جيد طالما أن in 'unit1.pas
تم حذفه.
المحلول
يمكن أن يأتي ذلك من حقيقة أن مسار البحث في IDE ومسار البحث في مترجم سطر الأوامر ليسا متماثلين.إذا قمت بتغيير مسار البحث لمترجم سطر الأوامر، فقد تتمكن من استخدام نفس كود المصدر تمامًا كما هو الحال في IDE.
أحد الاحتمالات لتكوين مسار البحث لمترجم سطر الأوامر هو القيام بذلك في ملف يسمى dcc32.cfg.ألق نظرة على المساعدة، يوجد وصف مختصر لـ dcc32.cfg في تعليمات IDE.
نصائح أخرى
حسنًا، نجح هذا الحل بالنسبة لي.
//{$define PACKAGE} {$ifdef PACKAGE} uses unit1 in 'unit1.pas' unit2 in 'unit2.pas' ... {$else} uses unit1 unit2 ... {$endif}
المشكلة الوحيدة هي أنه كلما قمت بإضافة وحدة جديدة، تقوم دلفي بمسح بياناتك ifdef package
في القمة.
في كل مرة يجب أن أضع الشروط الشرطية في ملف المشروع أفعل هذا:
program a;
uses
ACondUnits;
...
unit ACondUnits;
interface
uses
{$IFDEF UseD7MM}
Delphi7MM;
{$ELSE}
FastMM4;
{$ENDIF}
implementation
end.
ربما تعمل هذه الخدعة في الحزم أيضًا.أبدا لم أحاول.