ورود

View Full Version : پیغام خطا هنگام کامپایل برنامه



sd.CSharpProgrammer
سه شنبه 09 اسفند 1390, 15:35 عصر
سلام دوستان
مدتهاست روی یک پروژه کار میکنم. امروز داشتم تو محیط کیوت کار میکردم که خواستم برنامه رو release کنم وقتی build کردم این خطاها رو نشون داد :




undefined reference to 'ReminderWidget::on_moreWidget_destroyed()'
File not found: moc_reminderwidget.cpp

collect2: Id returned 1 exit status



مشکل از کجاست دوستان؟
ممنون میشم کمک کنید.

sd.CSharpProgrammer
سه شنبه 09 اسفند 1390, 21:11 عصر
کسی نیست کمک کنه؟

حامد مصافی
چهارشنبه 10 اسفند 1390, 08:46 صبح
ماکروی Q_OBJECT درج شده است؟
اگر کد کلاس ReminderWidget را درج کنید بهتر می‌توان راهنمایی کرد

sd.CSharpProgrammer
دوشنبه 15 اسفند 1390, 09:44 صبح
سلام دوست عزیز

بله ماکروی Q_OBJECT درج شده بود.
مشکل رو پیدا کردم ولی کمی عجیبه!!!
در فایل هدر کلاس، اسلاتی بنام on_moreWidget_destroyed() تعریف شده بود که جالب اینجاست من چنین چیزی اونجا ننوشته بودم. و چون این اسلات در فایل cpp پیاده سازی نشده بود منجر به خطا می شد.

ار راهنمائی های شما دوست عزیز ممنونم.

سروش ربیعی
پنج شنبه 03 فروردین 1391, 15:23 عصر
عجیب نیست!
اسلاتی که اعلان بشه ولی پیاده‌سازی نشه منجر به خطای لینکر خواهد شد. با وجود این که شما از این پیاده‌سازی توی کد خودتون استفاده نکردید، Meta Object Compiler دنبال پیاده‌سازی‌ش می‌گرده. چون Event Loop باید آی‌دی مربوطه و اشاره‌گر به تابع‌ش رو داشته باشه. فایل‌های تولید شده توسط MOC رو اگه نگاه کنید می‌بینید که از اسلات تعریف شده استفاده شده. (فایل‌هایی با پیشوند moc_ رو ببینید)