এক্সকোডের অধীনে আর্কিটেকচার x86_64 এর জন্য সদৃশ চিহ্নগুলি


219

উপরের শিরোনাম সহ আমার এখন একই প্রশ্ন রয়েছে তবে সঠিক উত্তর এখনও পাইনি। আমি ত্রুটি পেয়েছি:

    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
duplicate symbol _OBJC_METACLASS_$_MoboSDK in:
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o
    /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o)
ld: 75 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

কোন সাহায্য প্রশংসা করা হয়।

অবশেষে  আমি এই ত্রুটি কারণ আমি যোগ কারণে জানতে -ObjCথেকে Other Linker Flags। এই মানটি সরিয়ে দেওয়ার পরে আমি আমার প্রকল্পটি সফলভাবে তৈরি করতে পারি, তবে কেন তা আমি জানি না। কেউ কি এই ব্যাখ্যা করতে পারেন?


লিঙ্কারটি একাধিক সংখ্যক সংজ্ঞায়িত প্রতীকগুলির মুখোমুখি হয়েছে - 75, নির্ভুল হতে। এটি সম্ভবত কারণ আপনি একবার #includeবা #importএকাধিক কিছু করেছেন (সম্ভবত মবএসডিডি, যা কিছু হোক)।
রেভ্রন

আমি GoogleConversionTrackingSDK-iOS-3.0আমার প্রকল্পে যুক্ত হওয়ার পরে এই ত্রুটি ঘটেছে। এর আগে , এটি ঠিক আছে I আমি এটি অপসারণ করার চেষ্টাও করেছি, তবে ত্রুটিটি এখনও ঘটে।
লি

এটি আপনার ক্ষেত্রে নয়, কারণ আমার প্রকল্পের বিল্ড ঠিক আছে গুগলের এসডিকে যুক্ত করার আগে কারণ।
লি

অ্যাডাম ওয়েটের দ্বিতীয় উত্তরটি সত্যই সরাসরি is নিশ্চিত করুন যে কোনও জায়গায় এম। এম ফাইল নেই imp
বোগদান

আমার ক্ষেত্রে আমি দুটি পৃথক শ্রেণিতে একই স্ট্রিং অ্যারের নামটি ব্যবহার করার চেষ্টা করছিলাম। আমি যখন ক্লাসের একটিতে অ্যারের নাম পরিবর্তন করেছি তখন এই ত্রুটিটি সরানো হয়েছে।
আশা করি

উত্তর:


109

X86_64 আর্কিটেকচারের জন্য 75 টি সদৃশ প্রতীক

এর মানে হল যে আপনি একই ফাংশন দুটিবার লোড করেছেন। সমস্যাটি সরানোর পরে অদৃশ্য হয়ে -ObjCযাওয়ার সাথে সাথেOther Linker Flags, এর অর্থ এই যে এই অপশনটি ফলে ফাংশন লোড দুইবার:

প্রযুক্তিগত প্রশ্নোত্তর থেকে

এই পতাকাটির ফলে লিঙ্কার লাইব্রেরিতে প্রতিটি বস্তু ফাইল লোড করে যা একটি উদ্দেশ্য-সি শ্রেণি বা বিভাগকে সংজ্ঞায়িত করে। এই বিকল্পটির ফলে সাধারণত বৃহত্তর এক্সিকিউটেবল (অ্যাপ্লিকেশনটিতে লোড হওয়া অতিরিক্ত অবজেক্ট কোডের কারণে) ফলাফল আসবে, এটি কার্যকর ক্লাসের বিভাগগুলি সহ কার্যকর কার্যকর উদ্দেশ্য-সি স্ট্যাটিক লাইব্রেরি তৈরির সফল অনুমতি দেবে।

https://developer.apple.com/library/content/qa/qa1490/_index.html


1
অন্য কথায়, নিশ্চিত হয়ে নিন যে আপনি আপনার এক্সকোড প্রকল্পের যে কোনও অবজেক্ট ফাইলগুলি সরিয়ে দিয়েছেন।
হাইপোথিটিক্যাল ইন ক্লেভিকাল

5
এটি আমার পক্ষেও কার্যকর, তবে আমার অন্যান্য গ্রন্থাগারগুলি -ObjCপতাকাগুলির উপর নির্ভর করে । সুতরাং আমার এই প্রকল্পটি আমার প্রকল্পের সেটিংসে রাখতে হবে। আপনি দয়া করে অন্য কোন সমাধান পরামর্শ দিতে পারেন?
সুনীল টার্গে

3
আমার ধারণা আপনার আপনার সমস্ত লাইব্রেরি পর্যালোচনা করা দরকার: আপনি যদি ডুপ্লিকেট লিঙ্কারের ত্রুটি পেয়ে থাকেন, তার মানে আপনার 2 বা ততোধিক লাইব্রেরিতে একই উত্স কোড রয়েছে।
ডেভিড ভি

টার্গেট-> বিল্ড ফেজস>> বাইনারি সাথে এক্সকোডে লাইব্রেরিগুলির সাথে লিঙ্ক বাইনারি লিঙ্ক-এর বিরুদ্ধে অভিযোগ করা হয়েছিল এমন কিছু প্রতিক্রিয়া পাঠাগারগুলি আমাকে সরিয়ে ফেলতে হয়েছিল যেহেতু এটি আমার কোকো ফলের সাথে প্রতিক্রিয়াটির বিরোধী ছিল
কোটি এমব্রি

আমার ক্ষেত্রে আমি .m ফাইল আমদানি করেছি। তাই বোকা ভুল। একবার আমি .h ফাইল আমদানি করেছিলাম। এটি নির্মাণের জন্য প্রস্তুত !! ধন্যবাদ
রবি

261

আমার জন্য, 'না কমন ব্লকগুলি' হ্যাঁ থেকে নোতে পরিবর্তন করতে (লক্ষ্যগুলি-> বিল্ড সেটিংস-> অ্যাপল এলএলভিএম - কোড জেনারেশন) এর অধীনে সমস্যার সমাধান হয়েছে।


3
এটি আমার সমস্যার সমাধান করেছে। এটিকে কি আবার ফিরিয়ে দেওয়া দরকার NO? এর পিছনে কারণ কী?
হেমাং

3
হ্যাঁ এটি সমস্যার সমাধান করে তবে এর পিছনে কারণটি নয়। যদি আপনি কোন কনস্ট সংজ্ঞায়িত করেন তবে নিশ্চিত হন যে ডিকিমিটন ঠিক আছে। আমার ক্ষেত্রে আমি কেবল "এক্সটার্ন" ভুলে গেছি। এটি সৌভিক ডলুই উত্তরে উল্লেখ করা হয়েছে।
কোকো

10
এক্সকোড 8 এর একটি স্বয়ংক্রিয় আপডেট হিসাবে এই পরিবর্তনটিকে অনুরোধ জানায় এবং আমার বিল্ডটি ভেঙে দেয়: /
পেকম্ব

1
2 ঘন্টা সময় কাটানোর পরে, এই উত্তরটির কারণে এই সমস্যাটি সমাধান করা হয়েছে। ধন্যবাদ
মনীষ পাঠক

1
এটি কাজ করে, তবে আমাকে লক্ষ্য এবং প্রকল্পে এটি পরিবর্তন করতে হয়েছিল
নুবলু

251

বোকা একটি, তবে নিশ্চিত হয়ে নিন যে আপনি কোথাও ভুল করে #importকোনও .mফাইল সম্পাদনা করেন নি


3
আমি এটি করিনি, তবে এই সমাধানটি আমার কী করেছিল তা সন্ধান করতে সহায়তা করেছিল যা ভুলভাবে একটি .h ফাইলে @ ইন্টারফেস ব্লকের বাইরে ভেরিয়েবল ঘোষণা করতে হয়েছিল।
স্কুটার 21

ইউনিট পরীক্ষাগুলি ব্যবহার করার সময়, কেবলমাত্র .m ফাইল উত্পন্ন হয়। আমি মনে করি এটি সর্বোত্তম সমাধান নয় - যদিও আমি এটির জন্য একটি শিরোনাম ফাইল তৈরি করেছি - আমি বেস পরীক্ষার ক্লাস তৈরি করতে চেয়েছিলাম।
ব্রুনো মুনিজ

আমি এই ধরনের বোকা ভুল করেছি এমন সম্ভাবনার জন্য আমার মনকে আলোকিত করার জন্য আপনাকে অনেক ধন্যবাদ।
ড্যানিয়েল লিমা 5

ক্রস-প্রকল্প আমদানি। এম ফাইল সম্পর্কে কীভাবে?
নভেম্বল' 19:38

54

আমার ক্ষেত্রে, আমি এই জাতীয় ধ্রুবক স্ট্রিংগুলি সংজ্ঞায়িত করতে কেবল একটি শিরোনাম ফাইল তৈরি করেছি:

NSString *const AppDescriptionString = @"Healthy is the best way to keep fit";

আমি এই দৃশ্যটি ব্যবহার করে সমাধান করেছি static:

static NSString *const AppDescriptionString = @"Healthy is the best way to keep fit";

2
এটি আমার জন্য সমস্যাটি সমাধান করেছে। যদিও আমি পূর্বে সমাধান externপরিবর্তে static: extern NSString * const kNotificationName;। যা আশ্চর্যজনক, কারণ আপনি সাধারণত এ জাতীয় উপসর্গটি যোগ করেন নি এবং এটি দুর্দান্ত কাজ করেছে ...
ব্যবহারকারীর 1244109

এটি, কোনও কারণে, আমার সমস্যা সমাধান করেছে। ধন্যবাদ। আমি বুঝতে পারি না যে সংকলকটি সদৃশ চিহ্নগুলির চেয়ে আরও ভাল প্রতিক্রিয়া কেন দিতে পারেনি, যা একেবারেই সম্পর্কিত বলে মনে হচ্ছে না।
সাইরেনস

@ সাইরেনস, আমিও এলএলভিএম সংকলকটির থেকে আরও ভাল ত্রুটির বার্তা প্রত্যাশা করেছি। যাই হোক আমি 2 দিনের পরে ত্রুটিটি খুঁজে বের করতে যথেষ্ট ভাগ্যবান ছিলাম। :(
সৌভিক দোলুই

এটিই আমার সমস্যা ছিল কেন আসল সমস্যা এটির কারণে?
ফ্যাটলাদ

এটি যদি ভাল হয় যদি সমস্ত ভেরিয়েবলগুলি AppStrings.hধ্রুবক হয় তবে আপনি যদি বিশ্বব্যাপী পরিবর্তনীয় ভেরিয়েবল চান তবে এটি হুওকের কারণ হতে পারে কারণ প্রতিটি উত্স ফাইল যার মধ্যে শিরোনাম ফাইল অন্তর্ভুক্ত থাকে তার ভেরিয়েবলের নিজস্ব অনুলিপি থাকবে। এটি একটি খারাপ সমাধান।
ট্রজানফয়ে

32

সমস্যার স্বীকৃত উত্তরটি আমি স্পর্শ পেয়েছি তবে এটি সমাধানে আমাকে সহায়তা করেনি, আশা করি এই উত্তরটি এই হতাশার সমস্যাটিতে সহায়তা করবে।

duplicate symbol _OBJC_IVAR_$_BLoginViewController._hud in:

17 duplicate symbols for architecture x86_64

"এর অর্থ হ'ল আপনি একই ফাংশনটি দু'বার লোড করেছেন Other অন্যান্য লিঙ্কার ফ্ল্যাগগুলি থেকে -ObjC অপসারণের পরে বিষয়টিটি অদৃশ্য হয়ে যায়, এর অর্থ এই বিকল্পটির ফলস্বরূপ ফাংশন দু'বার লোড হয়:"

সাধারণ ব্যক্তির ভাষায় এর অর্থ আমাদের প্রকল্পে ঠিক একই নাম সহ দুটি ফাইল রয়েছে। হতে পারে আপনি একটি প্রকল্পকে অন্য একটিতে সংযুক্ত করছেন? কোন ফোল্ডারটি সদৃশ হয়েছে তা দেখতে "সদৃশ চিহ্নগুলি" ত্রুটির উপরে ত্রুটিগুলি দেখুন, আমার ক্ষেত্রে এটি ছিল BLoginViewController।

উদাহরণস্বরূপ, নীচের চিত্রটিতে আপনি দেখতে পাচ্ছেন যে আমার কাছে দুটি বিমিজভিউ কনট্রোলার রয়েছে, আমার জন্য এটিই সমস্যাটি সৃষ্টি করেছিল।

যত তাড়াতাড়ি আমি একটি মুছে ফেলার পরে সমস্যা অদৃশ্য :)

এখানে চিত্র বর্ণনা লিখুন


2
বিশাল সাহায্য, আপনাকে ধন্যবাদ। আমি এমন একটি প্রকল্পের ব্যাকআপ নিয়েছি যাতে কোকোপড ব্যবহার হয়। ভুলে যাওয়ার সময়, আমি যখন এক্সকোডে ব্যাকআপটি পুনরায় লোড করেছিলাম এবং এটি নির্মাণ না করে দেখতে পেলাম, তখন আমি এএফ নেট নেটওয়ার্কিংটিকে সরাসরি প্রকল্পে যুক্ত করেছিলাম। পরবর্তীতে আমি আমার কোকোপোডগুলি পুনরায় সেটআপ করতে গিয়েছিলাম, যার মধ্যে এএফ নেটর্াকিংকে নির্ভরতা হিসাবে অন্তর্ভুক্ত করা হয়েছিল এবং আমি আমার প্রকল্পে যুক্ত হওয়া এএফ নেট নেটওয়ার্কিং ফোল্ডারটি সরিয়ে দিতে ভুলে গেছি।
জানু

32

আমারও একই সমস্যা এক্সকোড .2.২ তে পথের টার্গেট> বিল্ড সেটিং> কোনও সাধারণ ব্লক নেই, আমি এটিকে NO এ পরিবর্তন করি।


4
এটা আমার সমস্যা ছিল। এটি একটি সেটিংস এক্সকোড 8 রেখেছিল। ধন্যবাদ!
রবার্ট জে ক্লেগ

30

আপনি যখন বিভিন্ন শ্রেণিতে একই নামের সাথে কনস্টের ভেরিয়েবলগুলি ঘোষণা করেন তখনও ঘটে:

ফাইল বার্তা.এম

const int kMessageLength = 36;

@implementation Message

@end

Chat.m ফাইল এ

const int kMessageLength = 20;

@implementation Chat

@end

1
কনস্ট নয় তবে আমার পক্ষে কাজ হয়েছিল যখন আমি পরিবর্তনশীল নামটি পরিবর্তন করি
Oktay

আমি আমার নিজস্ব বর্গ ভেরিয়েবলের একটি পয়েন্টার সহ এটি দুটি পৃথক ক্লাসের
অ্যামিমিয়ানাস

সংকলনের সময়, সংকলক কেবলমাত্র শিরোনাম (.h) ফাইলগুলিতে সদৃশ চিহ্নগুলির (এখানে গ্লোবাল ভেরিয়েবলগুলি) পরীক্ষা করে। তবে সংযোগের সময় বাস্তবায়নের (। মি) ফাইলগুলিতে (গ্লোবাল) ভেরিয়েবলগুলিও পরীক্ষা করা হয় এবং যদি কোনও সদৃশ থাকে তবে লিঙ্কার ত্রুটির মধ্য দিয়ে যাবে: সদৃশ প্রতীক _xyz
PANKAJ VERMA

30

আমার উপর এটি ঘটেছিল যখন আমি দু'বছর আগে অবজেক্টিভ-সি-তে বিকাশিত একটি প্রকল্পের "প্রস্তাবিত সেটিংস" পপ-আপ গ্রহণ করেছি।

সমস্যাটি হ'ল যখন আপনি "প্রস্তাবিত সেটিংস" আপডেটটি স্বীকার করেন, এক্সকোড স্বয়ংক্রিয়ভাবে কিছু বিল্ড সেটিংস পরিবর্তন করে বা যুক্ত করে GCC_NO_COMMON_BLOCKS = YES;

এটি duplicate symbolআমার আপডেট হওয়া প্রকল্পে ত্রুটি সহ বিল্ডটিকে ব্যর্থ করে তুলেছে । তাই আমি পরিবর্তিত No Common Blockকরতে NOআমার build সেটিংসে এবং ত্রুটি সর্বস্বান্ত হয়েছিল।


3
হ্যাঁ, এটি আমাকে সাহায্য করেছিল। এক্সকোড 8, প্রস্তাবিত সেটিংসে একটি পুরানো প্রকল্প আপডেট করেছে। এই ফিরে ফিরে এবং আমি আবার যেতে ভাল। ধন্যবাদ!
জোল্টন

2
ভাল করেছ. আমাকে অনেক সাহায্য করেছে! প্রিয়তম আপনার জন্য একটি ভোট! ;-)
হেলেন উড

1
উজ্জ্বল সাথী :)
Burf2000

16

সদৃশটি সন্ধান করার দ্রুততম উপায় হ'ল:

  1. লক্ষ্যগুলিতে যান
  2. পর্যায়ক্রমগুলি তৈরি করতে যান
  3. সংকলন উত্স যান
  4. সদৃশ ফাইল মুছুন।

ওম, এটা আমার ঘটনা ছিল, অনেক অনেক ধন্যবাদ! এখন আমি তোমার কাছে আমার জীবনের 4 ঘন্টা এবং কিছু বিয়ার পাওনা :)
মিরোস্লাভ

1
আপনি স্বাগত, কিন্তু না ধন্যবাদ আমি পান না :) শুভ কোডিং।
জে গস

এতে আরও কয়েক ঘন্টা যোগ করুন।
সিজে_সিআইএমবিআর

আমার জন্য কাজ! ধন্যবাদ!
নভেম্বর

15

নিম্নলিখিত পদক্ষেপগুলি আমার জন্য সমস্যার সমাধান করেছে।

  1. টার্গেট সেটিংসে পর্যায়গুলি তৈরি করতে যান to
  2. "লাইব্রেরিগুলির সাথে বাইনারি লিঙ্ক করুন" এ যান।
  3. কোনও লাইব্রেরির দু'বার উপস্থিত রয়েছে কিনা তা পরীক্ষা করে দেখুন।
  4. আবার তৈরি করুন।

13

অন্যান্য লিঙ্কার পতাকাগুলি থেকে -ObjC সরান বা দয়া করে ভুল করে .h এর পরিবর্তে কোনও .m ফাইল আমদানি করে দেখুন।


1
আরে, প্রত্যেকে, যারা এখনও ভাবছেন যে কেন -ObjC পতাকা কাজ করে না - এই উত্তরের দিকে মনোযোগ দিন। আমি পুরোপুরি ভুল চিন্তাভাবনা করেছি - ওবিজেসি পতাকাটি আমার "সুপার স্পেশাল" ক্ষেত্রে কাজ করে না। প্রকল্পটির মাধ্যমে স্মেথের অনুসন্ধানের পরে .m"আমি লক্ষ্য করেছি যে আমি .h এর পরিবর্তে .m ফাইলটি আমদানি করেছি এবং এটি ঠিক কাজ করে ফিক্স করার পরে! Talk is cheap, show me the code!চিয়ার্স!
বিজিপ্লে

9

এক্সকোড 7.3 এ খোলা কিছু লিগ্যাসি প্রকল্পের সাথে আমার পরিস্থিতিটি ছিল:

duplicate symbol _SomeEnumState in:

দুটি সম্পর্কযুক্ত ফাইলের তালিকা অনুসরণ করে oo, এরপরে এটি কয়েকবার পুনরাবৃত্তি হয়েছিল, শেষ পর্যন্ত:

ld: 8 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

আমার জন্য যে বিষয়টি সমাধান হয়েছিল তা হ'ল এনাম ডিক্লোরেশন পরিবর্তন করা:

enum SomeEnumState {
    SomeEnumStateActive = 0,
    SomeEnumStateUsed = 1,
    SomeEnumStateHidden = 2
} SomeEnumState;

এটি:

typedef NS_ENUM(NSUInteger, SomeEnumState) {
    SomeEnumStateActive = 0,
    SomeEnumStateUsed = 1,
    SomeEnumStateHidden = 2
};

কারও কাছে যদি এর জন্য ব্যাখ্যা থাকে তবে দয়া করে আমাকে আলোকিত করুন।


একই জিনিসটি আমার জন্য এটি ঠিক করেছিল, যখন আমি এনএস_এনইএম টাইপডে এনাম স্যুইচ করেছিলাম এটি সদৃশ চিহ্নগুলির ত্রুটিটি ঠিক করেছিল
মার্ক24x7

9

@ একীকরণের অধীনে একাধিক শ্রেণিতে একই ভেরিয়েবল সংজ্ঞা দেওয়াও এই সমস্যা তৈরি করতে পারে।


কিন্তু কেন? একই একই নামের প্লেইন সি ফাংশন সঙ্গে আমার ঘটেছে
vib

9

আমার ক্ষেত্রে, লোকেশনটিতে একই নামে দুটি ফাইল ছিল

লক্ষ্যসমূহ> বিল্ড পর্যায়সমূহ> উত্স সংকলন করুন এবং যে কোনও নকল ফাইল মুছুন।


8
  • লক্ষ্যগুলিতে যান
  • বিল্ড সেটিংস নির্বাচন করুন
  • "কোনও সাধারণ ব্লক নয়" অনুসন্ধান করুন, এটি কোনও নির্বাচন করুন ।

এটা আমার জন্য কাজ করেছে


7

আমি কোকোপড ইনস্টল করার পরে এই সমস্যাটি অনুভব করেছি। এখন প্রতিবারই ঘটে আমি কিছু পোড আপডেট করি। সমাধান আমি খুঁজে পেয়েছি:

টার্মিনালে যান:

1) pod deintegrate
2) pod install

এছাড়াও, আপনার বিল্ড সেটিংসে "সর্বদা এম্বেড সুইফট লাইব্রেরি" আইটেমটি পরীক্ষা করুন। এটি "বিবর্ণ" হওয়া উচিত যা ইঙ্গিত করে যে এটি ডিফল্ট কনফিগারেশন ব্যবহার করছে। যদি এটি কোনও ম্যানুয়াল হ্যাঁ সেট করা থাকে তবে এটির উপর ডিফল্ট কনফিগারেশনে ফিরে যাওয়ার জন্য এটি মুছুন hit এটি আচরণ বন্ধ করে দিয়েছে।


এটি আমার পক্ষে কাজ করেছে। তবে, "সর্বদা এম্বেড সুইফট লাইব্রেরি" ইতিমধ্যে কোনও তে সেট করা ছিল। আমি এটিকে YES এ স্যুইচ করেছি এবং তারপরে মুছুন এবং তারপরে উপরে বর্ণিত পড ফাংশনগুলি চালিত করে।
BVB09

5

আমার জন্য এক্সকোড 8 এর সময় প্রস্তাবিত প্রকল্প সেটিংসটি ইয়েসকে "কোনও সাধারণ ব্লক নয়" আপডেট করে যা এই সমস্যার কারণ হয়ে দাঁড়ায়।


পুরানো প্রকল্পে প্রয়োগ করার সময়, এখানে Xcode8.2.1 এর জন্য একই।
onekiloparsec

এটি এটি
এক্সকোড

5

আজ, আমি একই ত্রুটি পেয়েছি। ত্রুটির মূল কথাটি duplicate। আমি এটি দ্বারা স্থির:

1. Remove the duplicate file at Build Phases-->Compile Sources
2. If you can not remove it at Build Phases, you need find the file at your project and remove the reference by DELETE :

রেফারেন্স সরান

3. Add the file to your project again
4. Add the file's .m to your Build Phases-->Compile Sources again
5. Build your project, the error will disappear

ধন্যবাদ! আমার ক্ষেত্রে আমি দু'টি মূল সংকলন করেছি যেখানে পুরানো রেফারেন্স ছিল। এটি ড্রাগ এবং ড্রপ দ্বারা ঘটেছিল।
জিগ

4

আপনি দুর্ঘটনাক্রমে একটি .m ফাইল আমদানি করেন নি তা নিশ্চিত করুন, আপনি প্রকল্প উইন্ডোতে আপনার প্রাপ্ত ডেটা মুছে ফেলতে এবং তারপরে আবার বিল্ড এবং রান চালাতে চাইতে পারেন।


4

অন্য কারও কাছে যারা এই সমস্যাটি নিয়ে আসছেন, আমি এই উত্তরের কোনওটিতেই আমার রেজোলিউশনটি দেখিনি।

ম্যানুয়ালি সম্বোধন করা হয়েছিল .pbxproj সংশ্লেষ সংঘর্ষের পরে (যদিও খারাপভাবেই), .pbxproj এ পৃথক শ্রেণীর ফাইলগুলির সদৃশ উল্লেখ ছিল were প্রকল্প থেকে এগুলি মুছে ফেলা> পর্যায়ক্রমে বিল্ড> সংকলন উত্সগুলি আমার জন্য সবকিছু স্থির করে।

আশা করি এটি কাউকে লাইনে নামাতে সহায়তা করবে।


এছাড়াও মার্জিং বিরোধ ছিল এবং ম্যানুয়ালি pbxproj ফাইলে তাদের সমাধান করতে হয়েছিল। সাথে শেষ ld: X duplicate symbols for architecture x86_64। ত্রুটি বার্তায় উল্লিখিত উত্স ফাইলগুলি মুছে ফেলা এবং এগুলি আবার প্রকল্পে যুক্ত করে এটি স্থির করে।
কাস-কাদ

4

জুস007 এর অনুরূপ, আমি দুটি পৃথক এম। এম ফাইলগুলিতে সি টাইপ ভেরিয়েবল ঘোষণা এবং সূচনা করেছি (যেগুলি আমদানি করা হয়নি!)

BOOL myVar = NO;

যাইহোক, একটি পরিবর্তনশীল ঘোষণা এবং প্রারম্ভিক করার এই পদ্ধতিটি, এমনকি। মি।, এমনকি @ বাস্তবায়নে এটি বিশ্ব সুযোগকে মঞ্জুরি দেয়। আপনার বিকল্পগুলি হ'ল:

  1. এটিকে স্থির হিসাবে ঘোষণা করুন, সুযোগটি শ্রেণিতে সীমাবদ্ধ করতে:

    static BOOL myVar = NO;
  2. প্রারম্ভিকরণটি সরান (যা দুটি শ্রেণিকে বিশ্বব্যাপী ভাগ করে দেবে):

    BOOL myVar;
    -(void) init{
        myVar = NO;
    }
  3. এটিকে সম্পত্তি হিসাবে ঘোষণা করুন:

    @property BOOL myVar;
  4. @ ইন্টারফেসে এটিকে যথাযথ আইভার হিসাবে ঘোষণা করুন

    @interface myClass(){
        BOOL myVar;
    }
    @end

4

আমার ক্ষেত্রে main()আমার প্রজেক্টে দু'টি পদ্ধতি সংজ্ঞায়িত হয়েছিল এবং একটিতে সমস্যা সমাধান হয়েছে removing


এখানেও একই সমস্যা ছিল। আপনার পোস্ট আমাকে সাহায্য করেছে। ধন্যবাদ!
বারান এম্রে

3

সম্প্রতি একটি ত্রুটির উত্স খুঁজছেন মাথা ব্যথা ছিল। আমি অবাক হয়ে গিয়েছিলাম, যখন আমি জানতে পারি যে আমার অ্যাপ্লিকেশনটি সংকলন করতে চায় না, কেবলমাত্র আমার বিভিন্ন ক্লাসে কোড স্নিপেট ছিল বলে:

dispatch_time_t getDispatchTimeByDate(NSDate *date)
{
    NSTimeInterval interval;
    double second, subsecond;
    struct timespec time;
    dispatch_time_t milestone;


    interval = [date timeIntervalSince1970];
    subsecond = modf(interval, &second);
    time.tv_sec = second;
    time.tv_nsec = subsecond * NSEC_PER_SEC;
    milestone = dispatch_walltime(&time, 0);

    return milestone;
}

আশা করি কারও সাহায্য করতে পারে।


ছোট সহায়ক ফাংশন, দুর্ঘটনাক্রমে অনুলিপি করা, সহজেই উপেক্ষা করা - ধন্যবাদ!
স্টিভেন এ। লো

3

আমি আশা করি এটি অবশ্যই আপনাকে সহায়তা করবে

X86_64 আর্কিটেকচারের জন্য আমি একই ত্রুটিটি 3 টি সদৃশ প্রতীক পেয়েছি

আমার ক্ষেত্রে আমি একই প্রকল্পের অন্য ফাইল থেকে কোড অনুলিপি করেছি। বিএম তে এম ফাইলের কোড এবং প্রশংসার পরে আমি উল্লেখ হিসাবে একটি ত্রুটি পেয়েছি। এবং আমি গ্লোবাল ভেরিয়েবলের নাম পরিবর্তন করে ত্রুটির সমাধান করেছি।

এই ত্রুটিটি আমার ক্ষেত্রে এসেছিল কারণ উভয় ফাইলের ক্ষেত্রে বৈশ্বিক পরিবর্তনশীল জন্য একই ঘোষণা।


3

আমি একটি পড সংগ্রহস্থল যুক্ত করার সময় আমি একই ত্রুটি পেয়েছি

pod 'SWRevealViewController'

গিটহাব থেকে ইতিমধ্যে সংযুক্ত উত্স কোডের জন্য (এসডাব্লুওয়ালভিউকন্ট্রোলার)। সুতরাং, উত্স কোড বা পড সংগ্রহস্থল অপসারণ করে ত্রুটিটি ঠিক করা হবে।

কেস # 2:

২ য় বার, আমি যখন এইচ ফাইলে ধ্রুবক ঘোষণা করি তখন এই ত্রুটিটি উপস্থিত হয়েছিল

NSString * const SomeConstant  = @"SomeValue";
@interface AppDelegate : UIResponder <UIApplicationDelegate> {
...
...

কেস 2 রা আমাকে একটি রাত বাঁচিয়েছিল। ধন্যবাদ!
পঙ্কজ যাদব

3

উপরের উত্তরগুলি আমার পক্ষে কার্যকর হয়নি। এখানে আমি কীভাবে ঘুরেছিলাম:

1) ফাইন্ডারে, পুরো পডস ফোল্ডারটি এবং পডফিল.লক ফাইলটি মুছুন 2) এক্সকোড প্রকল্পটি বন্ধ করুন 3) টার্মিনালে পোড ইনস্টল করুন 4) এক্সকোড প্রকল্পটি খুলুন, ক্লিন বিল্ড কমান্ডটি চালান

তার পরে আমার জন্য কাজ করেছেন।


2

আমি যখন আমার প্রকল্পের অভ্যন্তরে লব প্রকল্পকে একীভূত করছিলাম তখন একই সমস্যা আমার সাথে ঘটে।

এখানে চিত্র বর্ণনা লিখুন

আসলে লব প্রকল্পেও এএফ নেটওয়ার্কিং ফাইল রয়েছে, তাই আমি লব প্রকল্প থেকে .m ফাইলগুলি সরিয়ে ফেলি।

এখানে চিত্র বর্ণনা লিখুন

আসলে। মি ফাইলগুলি আমার প্রকল্পের পিওডি / এএফ নেট নেটওয়ার্কিং / .এম ফাইলগুলির সাথে বিরোধ করছে conflic

এখানে চিত্র বর্ণনা লিখুন


2

এক্সকোডে 6.3.2। আমি নীচের মতো সমস্ত সম্ভাবনা পরীক্ষা করেছি

1: আমি আমার প্রকল্পে .m ফাইল আমদানি করি না।

2: অন্যান্য লিঙ্কার পতাকা-ObjC থেকে সরানো হয়েছে ।

3: আমার সমস্ত ডেরাইভ ডেটা সরানো হয়েছে ।

তবুও আমি একই ত্রুটি পাচ্ছি আমি .pchফাইল থেকে কোনও পরিবর্তনশীল ঘোষণা মুছে ফেলাতে এই ত্রুটিটি সরিয়েছি । আমার ক্ষেত্রে, আমি ফাইলের AppDelegateমধ্যে বস্তু ঘোষণা করেছি .pch। অবশেষে আমি কারণ খুঁজে পেয়েছি যে ত্রুটির কারণ। সুতরাং আমি .pch ফাইল এবং আমার প্রকল্পের কাজ করার মনোযোগ থেকে কোনও ভেরিয়েবলের ঘোষণা সরিয়ে ফেলি।


2

আরেকটি নির্বোধ ভুল যা এই ত্রুটির কারণ ঘটবে তা পুনরাবৃত্তি করা ফাইলগুলি। আমি দুর্ঘটনাক্রমে কিছু ফাইল দু'বার অনুলিপি করেছি। প্রথমে আমি লক্ষ্যগুলিতে গিয়েছিলাম -> পর্যায়গুলি তৈরি করুন -> সংকলন উত্স। সেখানে আমি দুবার সেই তালিকার কিছু ফাইল এবং তাদের অবস্থান লক্ষ্য করেছি।


আমি জানি না কেন কেউ আপনাকে নীচে নামিয়েছে, এটি আমার সমস্যার সমাধান করেছে।
ইয়াওয়ার

2

আমারও আজ এই ত্রুটি রয়েছে .mhat কারণ এটি একটি ফাইলে আমি একটি কনস্ট মানকে সংজ্ঞায়িত করেছি B তবে আমি অন্য একটি .mফাইল সংজ্ঞায়িত করেছি যাতে এই কনস্ট মানটিও অন্তর্ভুক্ত রয়েছে hat এর অর্থ এটির দুটি একই কনস্ট মান রয়েছে o সুতরাং এই ত্রুটিটি উপস্থিত হয়। এবং আমার সমাধানটি staticকনস্টের মানটির আগে " " একটি কীওয়ার্ড যুক্ত করছে uch যেমন:

static CGFloat const btnConunt = 9;

এবং তারপরে আমি প্রকল্পটি নির্মাণ করি এটি এই ত্রুটিটির প্রতিবেদন করবে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.