سؤال

لقد حصلت على هذا الخطأ عندما قمت بالضغط على build+debug:

ld: duplicate symbol .objc_class_name_BlogTableItemCell in /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o and /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
هل كانت مفيدة؟

المحلول

يبدو أنك تقوم بتجميع نفس فئة BlogTableItemCell مرتين في أماكن مختلفة من التعليمات البرمجية الخاصة بك.قد يحدث هذا في الحالات التالية.

  • لقد وضعت نفس الفئة التنفيذ في قسمين مختلفين الملفات;

  • لديك في الواقع واحد فقط تنفيذ هذه الفئة ، ومع ذلك أنت أيضا تربط في مشروعك إطار عمل أو مكتبة تحتوي على فصل دراسي الاسم هو بالضبط نفس اسمك .

حاول العثور على فصلك الدراسي في المشروع بأكمله وتأكد من توفر نسخة واحدة فقط في مشروعك.

نصائح أخرى

ويمكنك أيضا الحصول على هذا الخطأ إذا كان عن طريق الخطأ السماح كسكودي في الإكمال التلقائي للبيانات قم بإجراء #import تحدد "ملف. م" ل '' الطبقة بدلا من 'مكررة. ح.

وبالنسبة لي، وتغيير 'لا يوجد المشتركة كتل "من نعم إلى لا (تحت Targets-> بناء إعدادات-> أبل LLVM - إنشاء رمز)

كان

ولدي مشكلة مماثلة بسبب تحديد الفقراء من consts. كنت قد تعريف CONST في رأس بلدي:

int const kCropLocationTop = 1;

وهذا كان يفترض المستوردة عدة مرات. لإصلاح لقد غيرت رأس مواطنه كما يلي:

extern int const kCropLocationTop;

ونقل تكليف من CONST إلى ملف. م:

int const kCropLocationTop = 1;

وعلى أمل أن يساعد أي شخص هو كما يجهلون مفاهيم ج موضوعية بسيطة كما أنا!

فون: تكرار رمز خطأ من user576924

وأجاب بشكل صحيح بالنسبة لي. لكن العثور على المخالف العفريت هذا المقتطف ZSH.

grep "import.*\.m" **/*.[hm]

وسوف اقول لك على الفور حيث الخطأ هو.

وبواسطة خطأ أدرج الملف المصدر مرتين في مشروع -> بناء المرحلة -> مصادر ترجمة. إزالة واحد منهم حل المشكلة.

ووالسبب الأكثر شيوعا لهذا الخطأ هو استيراد ملف xyz.m بدلا من ملف xyz.h. تحقق مما إذا الواردات الخاصة بك تحتوي على شيء من هذا القبيل   #import "----.m"

وفقط لإضافة. استخدام كسكودي لتوليد الكائنات المدارة subclassed (البيانات الأساسية) يمكن في بعض الأحيان تكرار الملفات التي تم إنشاؤها. بالنسبة لي كان الإصلاح لحذف الملفات التي تم إنشاؤها وإعادة توليد هذه.

وأنا ركض للتو في هذه المشكلة نفسي. للحصول على قائمة، وهنا احتمال آخر:

والمكررة ربط خط في ملف المشروع.

وأنا سبب هذا الصراع دمج على تحديث SVN، وعندما تتكرر قصد خط.

وهذا ما حدث لي، أيضا. في حالتي، تم إدراج واحد (واحد فقط) من البيانات الأساسية بلدي ولدت الطبقات تلقائيا مرتين. I رصدت الازدواجية من خلال النظر في مراحل البناء ... مصادر ترجمة. ببساطة حذف واحدة من الحوادث حل المشكلة.

وإضافة سبب آخر محتمل إلى قائمة ... قد خلقت mistakingly ثوابت متعددة في ملف التنفيذ، ولكن خارج التنفيذ، الذي يحمل نفس الاسم.

في HeaderFileOne.m

NSString * const kCoolConstant = @"cool";

في HeaderFileTwo.m

NSString * const kCoolConstant = @"cool";

وهكذا تتغير واحد من تلك الأسماء ثابت أن إصلاح الخطأ الترجمة.

وأنا واجهت أيضا لهذه المشكلة. كان لي حل واحد إعادة تسمية المتغير العالمي، والذي له نفس الاسم واحدة في فئة أخرى. ويساعد هذا الأمل

وهذا قد يساعد شخص ما

وحصلت على هذا الخطأ لأنني تكرار ViewController ومن ثم تسميته. لذلك عندما جمع حصلت على هذا الخطأ. وكان السبب في كل من وحدات تحكم الطلة كانت هناك "تعويم" متغير مع نفس الاسم أي بمعنى "تعويم الحشو = 10.0" التي كنت قد المعرفة على مستوى الصف. إعادة تسمية اسم المتغير المذكور أعلاه في واحدة من وحدات التحكم عرض تحل مشكلتي.

وحدث الشيء نفسه بالنسبة لي حين كنت ألعب مع الملفات xib القابلة للترجمة، قصد لقد خلق ملفات تنفيذ اثنين وappereantly التي تسببت في مشكلة في حالتي. بعد حذف / إعادة إنشاء ملف التنفيذ دون أن تفعل نفس الخطأ، تم إصلاح الخطأ.

واحد من المطورين لدينا ترك "libSoomla *" ملفات المشروع في هناك مرتين. I إزالة الملفات المكررة soomla، بنيت إعادة، وذلك أنها ثابتة!

ونأمل أن يساعد.

في حالة مايو، تابعت بعض الإرشادات لإنشاء نسخة أحدث من التخريب التي وجهت لي لإنشاء هذا الارتباط الرمزي:

ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

والآن أنا حقا رجل ويندوز لذلك لم يكن واضحا على الفور بالنسبة لي - ولكن إزالة الربط القار ذلك بالنسبة لي (بعد إعادة تشغيل كسكودي):

rm /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

وتفو.

و(الخطأ الفعلي حصلت على واحد وصفت هنا: خطأ بناء رموز مكررة arclite.o )

تأكد من أنك لم استيراد ملف .M. بالنسبة لي هذا يحدث أضفت قم بإجراء #import "SchoolCommuterHome.m" بدلا من قم بإجراء #import "SchoolCommuterHome.h"

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