PDA

View Full Version : اشکال در کامپایل



alireza643
چهارشنبه 30 خرداد 1386, 10:23 صبح
من تو cbuilder یه برنامه نوشتم. اسن برنامه رو کامپیوتر خودم داره سالم کار میکنه ولی وقتی رو یه سیستم دیگه میبرم و برنامه رو اجرا میکنم اصلا فرم رو لود نمیکنه و همون اول میگه vcl100.bpl رو پیدا نمیکنه. این فایل رو کنار برنامه کپی میکنم یه فایل دیگه میخواد و خلاصه همه ی فایل ها رو تک تک باید کنارش کپی کنم که حدود 200 - 300 تایی میشه.
من قبلا برای رفع این مشکل تو تنظیمات linker میگفتم به صورت استاتیک کامپایل کنه نه به صورت داینامیک و این مشکل حل میشد. ولی الان دیگه با این کار مشکل برطرف نمیشه. کسی میدونه دیگه چه گزینه هایی باید تنظیم بشه؟

sasan_vm
چهارشنبه 30 خرداد 1386, 17:22 عصر
اولا 200-300 تا فایل نیست بسته به object های مورد استفاده 10 تا 20 فایل هم نمیشه. برای static link (اصلا توصیه نمیشه حجم فایل Exe خیلی بالا می رود)
باید :
در Linking گزینه Use dynamic RTL غیر فعال شود،
و در Packages گزینه Build with runtime packages غیر فعال شود. ( Linking و Packages تنظیمات مربوط به Project Options می باشند.)

استفاده از dynamic link:
در prompt dos این 2 دستور را اجرا کنید


tdump -m <FileName.exe> <FileName.dmp>
grep -i imports <FileName.dmp>


FileName نام برنامه تولید شده شما است، FileName.dmp خروجی tdump را در آن ذخیره
می کند و در آخر برنامه grep از این خروجی لیست کامل فایهای مورد نیاز dll, bpl را برایتان نمایش می دهد، بهتر است خروجی grep را در یک فایل text ذخیره کرده و از ان استفاده کنید.

:چشمک:

alireza643
یک شنبه 03 تیر 1386, 11:15 صبح
سلام
من هم به صورت Dynamic و هم Static برنامه رو کامپایل کردم. بعد اون دستوراتی که شما فرموده بودید تو داس اجر کردم و درمورد هر دو فایل exe لیست فایل هایی که میده یکی هست. میخواستم بدونم من درست اجرا کردم یا نه. یعنی چه Dynamic و چه Static این لیست رو تولید میکنه؟
مرسی

sasan_vm
یک شنبه 03 تیر 1386, 17:57 عصر
سلام
لیست فایلها یکی نیابد باشد. اگه از Static Link استفاده کرده باشید، هیچ فایل bpl ای را نباید در لیست ببینید فقط فایلهای dll مربوط به windows که VCL از انها استفاده میکند (که معمولا روی هر windows ای هست). اگر از package ای استفاده میکنید که بصورت DLL ارائه شده، ان فایلها هم به لیست اضافه می شوند.

احتمالا Static Link را درست انجام نمی دهید. ( قبل از انتخاب Build all projects ، در Project Options ، قسمت Build configuration گزینه Release Build را فعال کنید.)