سؤال

لقد حصلت على ملف 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.

ربما تعمل هذه الخدعة في الحزم أيضًا.أبدا لم أحاول.

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