আর্কিটেকচার আর্মভ 7 এর জন্য অপরিজ্ঞাত চিহ্ন


307

এই সমস্যাটি আমাকে পাগল করে তুলেছে এবং আমি কীভাবে এটি ঠিক করতে পারি তা নিয়ে কাজ করতে পারি না ...

    Undefined symbols for architecture armv7:
  "_deflateEnd", referenced from:
      -[ASIDataCompressor closeStream] in ASIDataCompressor.o
  "_OBJC_CLASS_$_ASIDataDecompressor", referenced from:
      objc-class-ref in ASIHTTPRequest.o
  "_deflate", referenced from:
      -[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o
  "_deflateInit2_", referenced from:
      -[ASIDataCompressor setupStream] in ASIDataCompressor.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

আমি মনে করি এটির সাথে এটি করতে হবে:

ld: symbol(s) not found for architecture armv7

তবে আমি যোগ করেছি: libz.1.2.3.dylibএবং এটি সাহায্য করছে না, কেউ কোনও ধারণা পেয়েছে?


বিদ্যমান উত্তরের যে কোনও উত্তর আবৃত না হওয়ার সম্ভাবনাটি হ'ল আপনি সম্ভবত -ObjCঅন্য লিঙ্কার পতাকাটি ব্যবহার করছেন এবং তাই বাহ্যিক স্থিতাগত গ্রন্থাগারগুলি থেকে ওবজ-সি আপনি ব্যবহার করছেন যা দৃশ্যমান হবে না (যেমন পার্সের থেকে) দৃশ্যমান are আমার উত্তর দেখুন এই ক্ষেত্রে যদি: stackoverflow.com/a/26151208/901641
ArtOfWarfare

2
থাম্বের নিয়ম হিসাবে, কিছু প্রকল্পগুলি এক্সকোড ম্যাচ-ও এর মতো ধরণের ত্রুটি দেয় এবং প্রকল্পটিতে ফাইলগুলি যুক্ত না করা হলে আর্কিটেকচার আই 386 (বা অন্যান্য) জন্য প্রতীক পাওয়া যায়নি। আপনি প্রকল্প ফোল্ডারে ডান ক্লিক করতে পারেন এবং "<প্রকল্প> ফাইল যুক্ত করুন" করতে পারেন।
ফ্যাব্রিকিও পিএইচ

আপনি আসলে এনএম সরঞ্জাম ব্যবহার করে তৈরি কংক্রিটের প্রতীকগুলি দেখতে পাচ্ছেন। .O ফাইলগুলির পাথের টার্মিনাল, এবং nm -gসেই ফাইলটি চালান যা প্রতীকটিকে কল করে এবং সেই চিহ্নটিকে থাকা উচিত, এবং আপনার দেখতে হবে যে সেগুলি মিলে যায় কি না, যা ত্রুটির জন্য ক্লু সরবরাহ করতে পারে। nm -g file.o আপনি এতে সিমেড সি ++ চিহ্নগুলি পরিদর্শন করতে পারেন: এনএম-জিসি ফাইল.ও
জেমস_আলভারেজ

এখানে কেউ আমাকে সাহায্য করতে পারেন? আমি নীচের ত্রুটিটি পাচ্ছি তবে উপরের সমাধানগুলির কোনওোটাই আমার পক্ষে কাজ করে না। আমি ইতিমধ্যে সমস্ত সম্ভাব্য সেটিংস সহ দিনগুলি কাটিয়েছি। Undefined symbols for architecture armv7: "YGConfig::YGConfig(int (*)(YGConfig*, YGNode*, YGLogLevel, char const*, void*))", referenced from: _YGConfigNew in libyoga.a(Yoga.o) ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)
লাল-শয়তান

উত্তর:


506

সাধারণ কারণ

"আর্কিটেকচার আর্মভি 7 এর জন্য অপরিবর্তিত প্রতীক" এর সাধারণ কারণগুলি হ'ল:

  1. আপনি একটি শিরোনাম আমদানি করুন এবং সঠিক লাইব্রেরির সাথে লিঙ্ক করবেন না । এটি সাধারণ, বিশেষত কোয়ার্টজকোরের মতো লাইব্রেরির জন্য শিরোনামগুলির জন্য এটি ডিফল্টরূপে প্রকল্পগুলিতে অন্তর্ভুক্ত নয়। সমাধান:

    • Link Binary With Librariesবিভাগে সঠিক লাইব্রেরি যুক্ত করুন Build Phases

    • আপনি যদি ডিফল্ট অনুসন্ধানের পথের বাইরে একটি লাইব্রেরি যুক্ত করতে চান তবে আপনি Library Search Pathsবিল্ড সেটিংসে মানটির মধ্যে পাথটি অন্তর্ভুক্ত করতে পারেন এবং
      -l{library_name_without_lib_and_suffix}(যেমন। Libz.a ব্যবহারের জন্য -lz) Other Linker Flagsবিভাগে যোগ করতে পারেন Build Settings

  2. আপনি আপনার প্রকল্পে ফাইলগুলি অনুলিপি করেছেন তবে ফাইলগুলিতে যুক্ত করার জন্য লক্ষ্যটি পরীক্ষা করতে ভুলে গেছেন । সমাধান:

  3. আপনি একটি স্ট্যাটিক লাইব্রেরি অন্তর্ভুক্ত করুন যা অন্য আর্কিটেকচারের জন্য i386, আপনার হোস্ট মেশিনের সিমুলেটারের জন্য নির্মিত । সমাধান:

    • প্রকল্পটিতে অন্তর্ভুক্ত করতে আপনার লাইব্রেরি বিক্রেতা থেকে আপনার যদি একাধিক লাইব্রেরি ফাইল থাকে তবে আপনাকে সিমুলেটারের জন্য একটি (আই 386) এবং ডিভাইসের জন্য একটি অন্তর্ভুক্ত করতে হবে (উদাহরণস্বরূপ আর্মভি 7)।

    • Allyচ্ছিকভাবে, আপনি একটি চর্বিযুক্ত স্ট্যাটিক লাইব্রেরি তৈরি করতে পারেন যা উভয়ই আর্কিটেকচার ধারণ করে।



আসল উত্তর:

আপনি সঠিক libz ফাইলের সাথে লিঙ্ক করেন নি। আপনি যদি ফাইলটি ডানদিকে ক্লিক করেন এবং ফাইন্ডারে প্রকাশ করেন তবে এর পাথটি কোনও আইওএস এসডিকে ফোল্ডারে থাকা উচিত। এখানে উদাহরণস্বরূপ আমার

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib

আমি রেফারেন্সটি অপসারণ এবং তারপরে এটি পুনরায় যুক্ত করার সাথে লাইব্রেরি সহ লিংক বাইনারি বিভাগে আপনার টার্গেটের পর্যায়গুলি তৈরি করুন।


4
এটি এমনও হতে পারে যে আপনাকে প্রকল্পের সেটিংসে / অন্যান্য লিঙ্কার ফ্ল্যাগগুলিতে "-lucucore" শব্দটি যুক্ত করতে হবে। এটি আমার ডিবাগ বিল্ডের জন্য স্বয়ংক্রিয়ভাবে যুক্ত হয়েছিল তবে মুক্তির এটি সংকলন করবে না।
জুলিয়ানবি

4
আমারও একই প্রশ্ন ছিল. ইনস্টল নোটগুলি যথাযথভাবে পড়া যায় নি তাই লক্ষ করা যায় নি যে বাগসনেসের নতুন সংস্করণটির জন্য বিল্ড পর্বগুলিতে লাইবজ বাইনারি যুক্ত করা দরকার।
সর্বাধিক ম্যাকলিয়ড

2
আপনি কি নিশ্চিত যে আপনি নিজের শিরোনাম ফাইলটিতে ঘোষণা করেছেন এমন সমস্ত ক্লাসের জন্য আপনার নিজের সম্পর্কিত মি। ফাইলটিতে @ ইমপ্লিমেন্টেশন বিভাগটি অন্তর্ভুক্ত করেছেন?
স্লোকট

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

সাহায্যের জন্য ধন্যবাদ! :) আমাকে অন্য Linker পতাকা বিভাগে স্পষ্টভাবে টাইপ সাহায্য করেছিল জন্য: -framework <FrameWorkName>। এক্সসিস্টেস্টে আমার সমস্যা ছিল, তাই আমাকে যুক্ত করতে হয়েছিল -framework XCTest। ধন্যবাদ! :)
piotr_ch

198

গত রাতে আমার একই সমস্যা হয়েছিল এবং সমস্যাটি এই সম্পর্কিত ছিল যে আমি এক্সকোডে আমার প্রকল্পে ফাইন্ডার থেকে একটি ক্লাস টেনে নিয়ে এসেছি।

সমাধানটি ছিল বিল্ড পর্যায়গুলি ট্যাব এবং তারপরে উত্সগুলি সংকলন করে নিশ্চিত করুন যে আপনি ক্লাসটিকে তালিকায় টেনে আনছেন make


6
আমি আশা করি যে এটি আমি উত্তরটি আগে খুঁজছিলাম তা বুঝতে পেরেছিলাম - বিকল্পভাবে ক্লাস অনুলিপি করার সময় আপনি 'লক্ষ্যগুলিতে যোগ করুন' পরীক্ষা করে দেখতে পারেন।
টি। মারকেল

1
ওহো ... ফিক্সটি এই সহজ ছিল! স্পষ্টতই, আপনি যদি আপনার প্রকল্পে অনুসন্ধানকারীর কাছ থেকে টেনে ক্লাস যুক্ত করেন তবে এক্সকোড সবসময় এগুলি আপনার বিল্ড পর্যায়গুলির তালিকায় স্পষ্টত যোগ করে না। আমি বিল্ড পর্যায়ের অধীনে "সংকলন উত্সগুলিতে" "+" বোতামটি আঘাত করেছি, সমস্ত আপত্তিজনক ফাইল যুক্ত করেছি এবং এটি সরাসরি সংকলিত হয়েছে।
আমোস

1
কি দারুন. অ্যাপলকে সত্যই তাদের ত্রুটি বার্তাগুলি নিয়ে পুনর্বিবেচনা করা দরকার।
devios1

2
এটির সমাধানের আরেকটি উপায় হ'ল অনুপস্থিত বলে মনে করা ফাইল নির্বাচন করুন select এবং "ইউটিলিটিস" স্লাইড আউট বারটি খুলুন। (এটি বেশিরভাগ ডানদিকে রয়েছে) এবং "ফাইল পরিদর্শক" চয়ন করুন। তারপরে নিশ্চিত করুন যে "টার্গেট সদস্যতা" এর অধীনে প্রকল্পে কোনও চেক রয়েছে। আমি
এক্সকোড

1
আমি জানতাম না কোন ফাইলটি অনুপস্থিত, সুতরাং আমি সহকারী সম্পাদক (দ্বিতীয় সম্পাদনা দর্শন) -এ বিল্ড পর্যায়গুলি দেখিয়েছি। আমি বাম সম্পাদনা দৃশ্যে আপত্তিকর ফাইলটি খুললাম এবং চেক করেছিলাম যে আমদানি করা ফাইলগুলির প্রতিটি বিল্ড পর্বে রয়েছে। আমি এমনটি যুক্ত করেছিলাম যা না হয় এবং এটি সমাধান হয়ে যায়।
ড্যান স্যান্ডল্যান্ড

38

আমার অনুরূপ সমস্যা ছিল এবং প্রকল্পের প্রতিটি কনফিগারেশন (ডিবাগ, প্রকাশ ও স্থাপনা) এবং টার্গেটের বিল্ড সেটিংসে আমাকে "বিল্ড অ্যাক্টিভ আর্কিটেকচার কেবল" পরীক্ষা করতে হবে।


3
আমার জন্য কৌশলও করেছিলেন। যদিও মূল প্রকল্পে প্রয়োজন ছিল।
কিরুয়ালেক্স

4
আমি একই সমস্যা সম্মুখীন। Build Active Architecture Onlyসেটিংস মধ্যে ভিন্ন Podsএবং আমার প্রকল্প। লিঙ্ক পর্যায়ে, এটি ব্যর্থ হয়েছে।
এচলোলিউ

21

"অপরিবর্তিত প্রতীক" লিঙ্কার ত্রুটির আরও একটি সম্ভাব্য কারণ হ'ল। মিমি ফাইল থেকে একটি সি ফাংশন কল করার চেষ্টা করা। এই ক্ষেত্রে আপনি যখন হেডার ফাইলগুলি আমদানি করেন তখন আপনাকে বাহ্যিক "সি" {...} ব্যবহার করতে হবে।

উদ্দেশ্য-সি ++ থেকে সি-ফাংশন কল করার ক্ষেত্রে লিংকের ত্রুটি


14

আমারও এ জাতীয় সমস্যা ছিল। _OBJC_CLASS _ $ _ এর পরে ক্লাসের নামটি আসলে আমার ক্লাস। কারণটি ছিল যখন আমি উত্স কোড ফাইলগুলিকে নেভিগেশন তালিকায় টেনে আনি তখন আমি "টার্গেটে যুক্ত করুন" তে টিকটিক করি না।

আমার সমাধানটি ছিল:

  1. নেভিগেশন তালিকা থেকে ক্লাসটি মুছুন এবং "কেবলমাত্র রেফারেন্স সরান" নির্বাচন করুন

  2. সোর্স কোড ফাইলগুলি আবার টেনে আনুন এবং "টার্গেটে যুক্ত করুন" এর জন্য টিক বক্সটি টিক দেওয়া আছে তা নিশ্চিত করুন। টিক বাক্সটি "প্রয়োজনে অনুলিপি করুন" এবং "গোষ্ঠী তৈরি করুন" এর নীচে রয়েছে।


কেবল যোগ করতে: যদিও এটি ত্রুটির সর্বাধিক সাধারণ কারণ নয়, আমি কেবল আপনার উত্তর (বাক্সটি টিকাইনি) এখনই আমার সাথে ঘটে।
আদম

8

সাধারণত সংস্করণ শনাক্তকারী ছাড়া একটি উপনাম রয়েছে যা বর্তমান সংস্করণের সাথে সংযুক্ত রয়েছে, এই ক্ষেত্রে libz.dylib লিবজ ১.২.২.ডিলিবিতে লিঙ্কযুক্ত। সংস্করণযুক্তটির পরিবর্তে বেস উرف ব্যবহার করুন।


5

টার্গেটের অধীনে -> বিল্ড সেটিংস -> অ্যাপল এলএলভিএম সংকলক ভাষা: 'সি ++ ল্যাঙ্গুয়েজ ডায়ালেক্ট' এবং 'সি ++ স্ট্যান্ডার্ড লাইব্রেরি' সংকলককে ডিফল্ট হিসাবে সেট করা এটি সমাধান করতে সহায়তা করেছে।


5

আমি কেবল আমার প্রকল্পে libz.1.2.2.dlib যুক্ত করেছি এবং এটি একটি কবজির মতো কাজ করেছে।

পদক্ষেপ -

  1. পর্যায়ক্রমগুলি তৈরি করতে যান।
  2. লাইব্রেরির সাথে বাইনারি লিঙ্ক করুন - ফ্রেমওয়ার্ক এবং লাইব্রেরি যুক্ত করতে '+' বোতামটি ব্যবহার করুন।
  3. তালিকা থেকে libz.1.2.5.dylib নির্বাচন করুন।
  4. বিল্ড এবং রান করুন।

5

আমার একই রকম সমস্যা ছিল এবং "স্টাড ::" সম্পর্কিত ত্রুটিগুলি দেখেছি

আমি বিল্ড সেটিংস -> অ্যাপল এলভিএম 5.0 - ভাষা সি ++ -> সি ++ স্ট্যান্ডার্ড লাইব্রেরি পরিবর্তন করেছি

libc ++ (LLVM C ++ C ++ 11 সমর্থন সহ স্ট্যান্ডার্ড লাইব্রেরি) থেকে libstdc ++ (GNU C ++ স্ট্যান্ডার্ড লাইব্রেরি)


5

আমি অ্যাডমব লাইব্রেরিটি ব্যবহার করার সময় আমার একই সমস্যা ছিল, আমি এটিকে "আর্কিটেকচারগুলি" "স্ট্যান্ডার্ড আর্কিটেকচারস আর্মভি 7, আর্মভি 7" তে 64-বিট অন্তর্ভুক্ত না করে পরিবর্তন করে ফিক্স করেছি। সেটিংস তৈরি করুন


4

আমার কাছে .h ফাইলে একাধিক @ অভ্যন্তরীণ পৃষ্ঠাগুলি রয়েছে এবং সংশ্লিষ্ট @ কার্যকরকরণের সমস্ত নির্দেশাবলী এখনও অন্তর্ভুক্ত করিনি। নিশ্চিত করুন যে এগুলি সকলেই সুষম।


4

যদি -ObjCআপনার টার্গেট> বিল্ড সেটিংস> অন্যান্য লিংক পতাকাগুলির অধীনে পতাকা থাকে এবং আপনি এই সমস্যাটি পেয়ে থাকেন তবে এটি সরানোর কথা বিবেচনা করুন। আপনি যদি ইচ্ছাকৃতভাবে এটি যুক্ত করে থাকেন কারণ আপনার কোনও স্থির লাইব্রেরি থেকে কিছু ওবিজে-সি কোড লোড করা দরকার যা সাধারণত অন্যথায় লোড হয় না, আইই, একটি ওবজ-সি বিভাগ, তবে আপনার -force_load <path>পরিবর্তে আপনার ব্যবহার করা উচিত -ObjC

<path>আপনার এক্সকোড প্রকল্প ডিরেক্টরি সম্পর্কিত হতে হবে। IE, যদি আপনার ডিরেক্টরি কাঠামোটি দেখতে এমন লাগে:

iOSProject
  + iOSAPI.framework
      + iOSAPI
  + iOSAPI.xcodeproj

তারপরে আপনার এই পতাকাটি সেট করা উচিত Other Linker Flags:

-force_load iOSAPI.framework/iOSAPI

আপনি যদি এর মতো একাধিক লাইব্রেরি অন্তর্ভুক্ত করতে চান তবে -force_loadতাদের প্রত্যেকের জন্য আলাদা লাইন অন্তর্ভুক্ত করা উচিত ।

-force_load iOSAPI.framework/iOSAPI
-force_load another.framework/another

4

আমি কীভাবে এই সমস্যাটি পেয়েছি তা এখানে:

আমি আমার প্রকল্প নেভিগেটরে টেনে অন্য প্রকল্প থেকে একটি .h, .m এবং NIB যুক্ত করেছি। এক্সকোড এগুলি সঠিকভাবে বিল্ড পর্যায়গুলিতে যুক্ত করেনি।

আমার উত্তরটি যাচাই করুন কারণ আমার অনুরূপ সমস্যা ছিল যা আমি কয়েকটি পদক্ষেপের মাধ্যমে সমাধান করতে সক্ষম হয়েছি।


3

আপনি যদি আইওএস 5 আপগ্রেডের সাথে কাজ করছেন, আমি জানতে পেরেছিলাম যে 4.3 লক্ষ্যবস্তুতে লেখা একটি প্রকল্প সংকলনের জন্য, আমি কেবলমাত্র লাইবজে .1.2.3.অনলিবের নাম পরিবর্তন করতে পেরে libz.1.2.5.dnlib করতে পারি এবং এটি সংকলিত হয়েছে।

আমার iPhoneOS50SDK / usr / lib ফোল্ডারে কোনও libz.1.2.3.dnlib নেই - জানেন না এটি কোনও বিটা জিনিস বা কেবল প্রাকৃতিক আপগ্রেড কিনা।


3

আপনার প্রকল্পে যান, বিল্ড পর্যায়গুলি, সংকলন উত্সগুলি ক্লিক করুন, তালিকায় গেমসেন্টার ম্যানেজ.আরএম যুক্ত করুন।


3

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

প্রকল্প নেভিগেটরে (ডান পাশের বার) ক্লাসটি নির্বাচন করুন, ইউটিলিটিগুলি থেকে সাইডবারটি (ডান পাশের বার) খুলুন, ইউটিলিটিগুলি থেকে টার্গেট সদস্যতা ট্যাবের নীচে ফাইল ইন্সপেক্টর (আইকনের মতো ফাইল) নির্বাচন করুন আপনার টার্গেটগুলি টিক করুন। এটি "রেফারেন্স সরান" এড়ানোর জন্য এবং "টার্গেটগুলিতে যুক্ত করুন" কৌশলটি টিক দিয়ে আবার যুক্ত করুন is

সুতরাং: শ্রেণি নির্বাচন করুন -> ইউটিলিটিস (ফাইল ইন্সপেক্টর) -> লক্ষ্য সদস্যপদ -> আপনি যে লক্ষ্যগুলি চান তা টিক দিন।


2

আমি এখানে এই পরামর্শটি পাইনি তাই এটি এখানে যায়: যদি আপনার প্রকল্পে একাধিক লক্ষ্য থাকে (যেমন ওএসএক্সের জন্য একটি এবং আইওএসের জন্য একটি) তবে আপনার অবশ্যই প্রতিটি টার্গেটের জন্য প্রাসঙ্গিক গ্রন্থাগারগুলি লিঙ্ক করতে হবে .. সুতরাং উদাহরণস্বরূপ আমার ক্ষেত্রে আমি আই অডিওটুলবক্সের দরকার ছিল .. আমাকে এটি একবার ওএসএক্সের জন্য এবং আইওএসের জন্য একবার যুক্ত করতে হয়েছিল ( ফ্রেমওয়ার্কগুলি ফোল্ডারের নীচে আপনার অবশ্যই প্রতিটি লক্ষ্যের জন্য প্রতিটি লাইব্রেরির নকল থাকতে হবে .. যদি আপনি কেবল একটি দেখতে পান .. তবে এটি একটি লাল পতাকা)


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

হ্যাঁ, আমি "লাইব্রেরিগুলির সাথে লিঙ্ক বাইনারি" পর্বের অধীনে একটি কাঠামো যুক্ত করতে ভুলে গেছি।
সর্বোচ্চ

2

আমি পিজেএসআইপি লাইব্রেরিগুলির সাথে একটি সমস্যার মুখোমুখি হয়েছি,

প্রকল্পের অন্যান্য লিঙ্কার পতাকাগুলিতে নিম্নলিখিতটি চেষ্টা করে ত্রুটিটি সমাধান করতে সক্ষম: -ফ্রেমওয়ার্ক ফাউন্ডেশন-ফ্রেমওয়ার্ক ইউআইকিট

উপরে লিথার পতাকাগুলি গিথাবের ওপরে সিফোন প্রকল্পে ব্যবহৃত হয় । এই সেটিংস আপনাকে সি ++ লাইব্রেরিগুলির লিঙ্ক সম্পর্কিত সমস্যাগুলি সমাধান করতে সহায়তা করবে।


পিজেএসআইপি লাইব্রব্রিজ নিয়ে আমারও একই সমস্যা হচ্ছে, আপনি কী সমাধানটি বিশদভাবে ব্যাখ্যা করতে পারেন
রজত জৈন

প্রকল্পের বিল্ডিং সেটিংয়ের অন্যান্য লিংক পতাকাগুলিতে নিম্নলিখিত মানগুলি সেট করুন: -ফ্রেমওয়ার্ক ফাউন্ডেশন-ফ্রেমওয়ার্ক ইউআইকিট
আদিশ জৈন

ত্রুটি বার্তা: ফাইল / ব্যবহারকারী / ব্যবহারকারী / উপস্থাপনা / pjproject-2.7.2/pjsip-apps/src/pjsua/ios/libyuv.a উপেক্ষা করে, ফাইল সংরক্ষণাগার জন্য নির্মিত হয়েছিল যা আর্কিটেকচারটি লিঙ্কযুক্ত নয় (i386): / ব্যবহারকারী /user/Downloads/pjproject-2.7.2/pjsip-apps/src/pjsua/ios/libyuv.a আর্কিটেকচারের জন্য অপরিবর্তিত প্রতীক i386: "_pjsip_register_method", থেকে উল্লেখ করা হয়েছে:
রজত জৈন

দেখে মনে হচ্ছে আপনি সিমুলেটারে অ্যাপ চালানোর চেষ্টা করছেন এবং libyuv.a সিমুলেটর আর্কিটেকচার i386 এর জন্য নির্মিত হয়নি। ডিভাইসে সরাসরি অ্যাপ্লিকেশন চালানোর চেষ্টা করুন
আদিশ জৈন

আমি সুইজেটে পিজেসিপকে সংহত করতে চাই। আমি ব্রিজিং শিরোনাম তৈরি করার চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি। আপনি আমাকে কিছু ধারণা দিতে পারেন?
রজত জৈন

1

অবশেষে আমি এটি সন্ধান করতে পেরেছি, আমি লক্ষ্যগুলি>> নির্মাণের পর্যায়গুলি>> বাইনারি গ্রন্থাগারগুলির সাথে লিঙ্কে অনুপস্থিত কাঠামো যুক্ত করে এই সমস্যাটি সমাধান করেছি I


1

আমি একবার এই সমস্যা ছিল। আমি বুঝতে পেরেছিলাম যে ক্লাসটি সরানোর সময় আমি গন্তব্য ফোল্ডারে .mmফাইলের সাথে .hফাইলটি ওভাররাইট করেছি ।

এই সমস্যাটি স্থির করে ত্রুটিটি স্থির করে।


1

'সি ++ স্ট্যান্ডার্ড লাইব্রেরি'র জন্য' লাইবসি ++ 'সেট (প্রকল্পটি সি ++ 11 থেকে কিছু বৈশিষ্ট্য ব্যবহার করছিল বলে প্রয়োজনীয়) সেট করে এমন একটি প্রকল্প সংকলনের চেষ্টা করার সময় আমি' আর্কিটেকচার আর্মভি 7 এর জন্য অপরিজ্ঞাত চিহ্নগুলি পেয়েছি: 'ত্রুটি পেয়েছি এবং প্রকল্পটিতে একটি উপ-প্রকল্প অন্তর্ভুক্ত ছিল যা একই রকম সেটিংটি 'libstdc ++' (বা বর্তমানে সংকলক ডিফল্ট হিসাবে রয়েছে) তে সেট করে।

উপ-প্রকল্পের 'সি ++ স্ট্যান্ডার্ড লাইব্রেরি' সেটিংসকে libc ++ এ পরিবর্তন করা এটি ঠিক করেছে, তবে কেবলমাত্র প্রথম-প্রকল্পের জন্য স্থাপনার লক্ষ্য নির্ধারণের পরে 5.0 বা তার বেশি (লিবিসি ++ এর জন্য 5.0 প্রয়োজন)।


1

আমি আপনাকে আরও পরামর্শ দিচ্ছি যেগুলি যখন অন্যান্য সাধারণ পরামর্শগুলি সহায়তা না করে আপনি যাচাই করতে পারেন।

আপনি যদি অন্য প্রকল্পের (লিবিএক্সএক্সএক্সএ.এ) সাথে লিঙ্ক করেন তবে আপনি কখনও কখনও অদ্ভুত সমস্যার মুখোমুখি হতে পারেন যা আপনি এনএম এর মতো সরঞ্জামগুলি সহ প্রতীকটি খুঁজে পেতে পারেন তবে তারা কেবলমাত্র এলডিতে চিহ্নগুলি খুঁজে পেতে পারেন না। তারপরে আপনার দুটি পরীক্ষা একই ফ্ল্যাগে নির্মিত কিনা তা পরীক্ষা করা উচিত, এর মধ্যে কয়েকটি বাইনারি ফর্ম্যাটকে প্রভাবিত করতে পারে।

  1. সি ++ কম্পাইলার পরীক্ষা করুন।
  2. সি ++ ডায়ালেক্ট সেটিং পরীক্ষা করুন।
  3. সি ++ রানটাইম টাইপ সমর্থন পরীক্ষা করুন। (-Frtti / -fnortti)
  4. একই নামের অন্য .a উপস্থিত রয়েছে কিনা তা পরীক্ষা করে দেখুন, লিঙ্ক পাথ তালিকার চেয়ে থাকা ফাইলের বাইরে হতে পারে। এগুলো মুছে ফেলো.

1

আমি যখন আমি অ্যাপ্লিকেশান চালানো এই সমস্যা পেয়েছিলাম iphone5s , এটি যোগ দ্বারা সমাধান করা হয়েছে arm64 করার আর্কিটেকচারের


1

আমারও একই সমস্যা ছিল। আমি উত্তরের বিশাল তালিকা থেকে প্রতিটি জিনিস চেষ্টা করেছিলাম কিন্তু শেষ পর্যন্ত আমার সমস্যাটি ছিল: আমি ওপেনসিভি দিয়ে কাজ করছি সুতরাং আমার কোডে সি ++ কোড একত্রিত করতে হবে। এটি করার জন্য আপনার যে ফাইলগুলি অবজেক্টিভ-সি এবং সি ++ ব্যবহার করে সেগুলি পরিবর্তন করতে হবে I


1

শেয়ারকিট ইনস্টল করার সময় আমার এই সমস্যাটি ছিল। এটি সিমুলেটারে কাজ করেছিল, তবে ডিভাইসে নয়। আমি অন্যান্য লিঙ্কার পতাকাটি থেকে সমস্ত_লোড সরিয়েছি এবং সিমুলেটর এবং আইফোন উভয় ডিভাইসে সবকিছু ঠিকঠাক কাজ করে।


1

আমার ক্ষেত্রে, আমি একটি কাঠামো যুক্ত করেছি যা অবশ্যই উদ্দেশ্য সি ++ ব্যবহার করা উচিত। আমি এই পোস্টটি পেয়েছি:

এক্সকোড .মি বনাম। মিমি

এটি ব্যাখ্যা করেছে যে কীভাবে মেইন.এম.টির নাম পরিবর্তন করে মেইন.এম.এম করা দরকার যাতে উদ্দেশ্য-সি ++ ক্লাসগুলিও সংকলিত হতে পারে।

এটা আমার জন্য এটি স্থির।



1

আমার জন্য সমস্যাটি ছিল আমি । মি (বাস্তবায়ন) এ আমার ধ্রুবকের জন্য মান নির্ধারণ করতে ভুলে গেছি

file const kFooKey = @"Foo";

1

আমি ড্র্যাগিং এবং ড্রপিংয়ের মাধ্যমে ফাইলগুলিও যুক্ত করেছি। আমি যা করেছি, আমি সমস্ত ফাইলের রেফারেন্স সরিয়েছি (বাদ দিয়ে frameworks) তারপরে এগুলি আবার যুক্ত করে ফাইলগুলিতে প্রজেক্ট বিকল্পের মাধ্যমে সঠিকভাবে যুক্ত করেছিলাম , সমস্যা চলে গেছে।


1

আপনি যদি ইউনিটি 3 ডি 5 থেকে বিল্ডিং করছেন এবং প্রাইম 31 প্লাগইন ব্যবহার করছেন এবং আপনি এই ত্রুটিটি পেয়ে যাচ্ছেন সম্ভবত এটি একটি সদৃশ .dll এর কারণে। আপনি যদি ইউনিটির সম্পাদকে আপনার সতর্কবার্তাটি লক্ষ্য করেন তবে তাদের মধ্যে একটি আপনাকে এটি বলবে এবং সতর্ক করবে যে এটি বিল্ড ত্রুটির কারণ হতে পারে। এটি কেস কিনা তা দেখতে, আপনার প্রকল্পের অনুসন্ধানের ক্ষেত্রে P31 টাইপ করুন এবং এটি ঠিক পপ আপ হওয়া উচিত, সম্ভবত একেরও বেশি। নকলটির ফাইলের শেষে একটি '1' থাকবে। এটি সম্ভবত স্টোর বা প্রাইম 31 মেনু ট্যাবের মাধ্যমে সম্পাদকের প্লাগইন আপডেট করার কারণে ঘটেছিল।

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