টি এল; ডিআর
নিশ্চিত হয়ে নিন যে আপনি সর্বশেষতম 'কমান্ড লাইন সরঞ্জাম' প্যাকেজটি ডাউনলোড করেছেন এবং এটি একটি টার্মিনাল (কমান্ড লাইন) থেকে চালনা করেছেন:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
ক্যাটালিনা সম্পর্কিত কিছু তথ্যের জন্য, ক্যাটালিনা 10.15 এ আপগ্রেড করার পরে ম্যাকের উপর সি প্রোগ্রাম সংকলন করতে পারবেন না ।
বরং বিস্তৃত মন্তব্যগুলি থেকে একটি আধা-সুসংগত উত্তর বের করা হচ্ছে ...
প্রস্তাবনা
খুব প্রায়ই, xcode-select --install
সঠিক সমাধান হয়েছে, কিন্তু এটি এই মুহুর্তে সাহায্য করবে বলে মনে হয় না। আপনি কি মূল Xcode GUI ইন্টারফেসটি চালানোর চেষ্টা করেছেন? এটি আপনার জন্য কিছু অতিরিক্ত সফ্টওয়্যার ইনস্টল করে পরিষ্কার করতে পারে। আমি এক্সকোড 10.0 ইনস্টল করার পরে তা করেছি, তবে এক সপ্তাহ বা আরও অনেক আগে মোজভেভে আপগ্রেড করার অনেক আগে।
আমি পর্যবেক্ষণ করেছি যে আপনার জিসিসি যদি ইনস্টল করা থাকে তবে /usr/local/bin
আপনি সম্ভবত এক্সকোড থেকে জিসিসি ব্যবহার করছেন না; এটি সাধারণত ইনস্টল করা আছে /usr/bin
।
আমিও ম্যাকোস 10.14 মোজাভে এবং এক্সকোড 10.0 এ আপডেট করেছি। যাইহোক, উভয় সিস্টেম /usr/bin/gcc
এবং সিস্টেম /usr/bin/clang
(আমার জন্য কাজ করছে Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0
উভয়ের জন্য।) আমি আমার হোম নির্মিত জিসিসি মধ্যে 8.2.0 খোঁজার না হেডার একটি সমস্যা আছে /usr/include
, যা দিয়ে আপনার সমস্যা সমান্তরাল /usr/local/bin/gcc
হেডার পারেন খোঁজার না।
আমি কিছুটা তুলনা করেছি, এবং আমার মোজাভে মেশিনে মোটেও কিছু /usr/include
নেই, তবুও /usr/bin/clang
ঠিক আছে সংকলন করতে সক্ষম। আমার শিরোনামে ( _stdio.h
শীর্ষস্থানীয় আন্ডারস্কোর সহ) ছিল আমার পুরানো /usr/include
; এটি এখন অনুপস্থিত (অতএব জিসিসি 8.2.0 এর সাথে আমার সমস্যা)। আমি দৌড়ে গিয়েছিলাম xcode-select --install
এবং এটি বলে " xcode-select: note: install requested for command line developer tools
" এবং তারপরে একটি জিইউআই ইনস্টলার চালিয়েছিল যা আমাকে একটি লাইসেন্স দেখায় যা আমি সম্মত হয়েছিলাম এবং এটি কমান্ড লাইন সরঞ্জামগুলি ডাউনলোড এবং ইনস্টল করেছে - বা এটি দাবি করেছিল।
আমি তখন Xcode গুই (কমান্ড-স্পেস, Xcode, আগমন) দৌড়ে গিয়ে তা আরো কিছু সফ্টওয়্যার ইনস্টল করা প্রয়োজন বলেন, কিন্তু এখনও কোন /usr/include
। তবে আমি /usr/bin/clang
এবং /usr/bin/gcc
- এর সাথে সংকলন করতে পারি এবং -v
বিকল্পটি তাদের ব্যবহার করার পরামর্শ দেয়
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
কাজ সমাধান
তারপরে ম্যাক্সএক্সএক্স উল্লেখ করেছে :
আমি একটি উপায় খুঁজে পেয়েছি। যদি আমরা এক্সকোড 10 ব্যবহার করি তবে আপনি খেয়াল করবেন যে আপনি যদি /usr
ফাইন্ডারে নেভিগেট করেন তবে আপনি 'অন্তর্ভুক্ত' নামক কোনও ফোল্ডার দেখতে পাবেন না, যার কারণে টার্মিনালটি ভিতরে থাকা শিরোলেখের ফাইলগুলির অনুপস্থিতির অভিযোগ করে 'অন্তর্ভুক্ত' ফোল্ডার। ইন Xcode 10.0 রিলিজ নোট , এটা বলছেন একটি প্যাকেজ থাকে:
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
এবং /usr/include
ফোল্ডারটি ইনস্টল করার জন্য আপনার সেই প্যাকেজটি ইনস্টল করা উচিত । তারপরে আপনার ভাল হওয়া উচিত।
যখন সমস্ত কিছু ব্যর্থ হয়, ম্যানুয়ালটি পড়ুন বা এই ক্ষেত্রে, রিলিজ নোটগুলি। আমি অ্যাপলকে তাদের ইউনিক্স heritageতিহ্যের দিকে ফিরে যেতে চেয়েছি তা দেখে আমি ভয়ঙ্করভাবে অবাক হই না, তবে আমি হতাশ। তারা যদি সাবধান হয় তবে তারা আমাকে তাড়িয়ে দিতে পারে। তথ্যের জন্য আপনাকে ধন্যবাদ.
কমান্ড লাইনে নিম্নলিখিত কমান্ডটি ব্যবহার করে প্যাকেজটি ইনস্টল করার পরে, আমি /usr/include
আবার করেছি এবং আমার জিসিসি 8.2.0 আরও একবার কাজ করে।
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
কমান্ড লাইন সরঞ্জাম ডাউনলোড করা হচ্ছে
ভেসাল যেমন একটি মূল্যবান মন্তব্যে উল্লেখ করেছেন , আপনার মোজভে 10.14-তে এক্সকোড 10.1 এর জন্য কমান্ড লাইন সরঞ্জাম প্যাকেজটি ডাউনলোড করতে হবে এবং আপনি এটি থেকে এটি করতে পারেন:
ডাউনলোড পেতে সক্ষম হতে আপনাকে অ্যাপল আইডি দিয়ে লগইন করতে হবে। আপনি ডাউনলোডটি শেষ করার পরে, কমান্ড লাইন সরঞ্জাম প্যাকেজটি ইনস্টল করুন। তারপরে 'ওয়ার্কিং সলিউশন' বিভাগে বর্ণিত শিরোনামগুলি ইনস্টল করুন।
এটি মোজভেভ 10.14.1 এ আমার জন্য কাজ করেছে। আমি অবশ্যই এটি আগে ডাউনলোড করেছিলাম, তবে আমি এই প্রশ্নের উত্তর দেওয়ার সময়টি ভুলে গিয়েছিলাম।
মোজাভে 10.14.4 এবং এক্সকোড 10.2 এ আপগ্রেড করুন
2019-05-17 বা প্রায়, আমি মোজাভে 10.14.4 এ আপডেট করেছি এবং এক্সকোড 10.2 কমান্ড লাইন সরঞ্জামগুলিও আপগ্রেড করা হয়েছে (বা এক্সকোড 10.1 কমান্ড লাইন সরঞ্জামগুলি 10.2-তে উন্নীত করা হয়েছিল)। open
কমান্ড দেখানো উপরে অনুপস্থিত হেডার স্থির করেছি। মূল এক্সকোডকে 10.2 এ আপগ্রেড করার পরে এবং কমান্ড লাইন সরঞ্জামগুলি এবং শিরোনাম প্যাকেজটি পুনরায় ইনস্টল করার জন্য এখনও অ্যাডভেঞ্চার আসতে পারে।
এক্সকোড 10.3 এ উন্নীত করুন (মোজাভেভ 10.14.6 এর জন্য)
2019-07-22 এ আমি অ্যাপ স্টোরের মাধ্যমে বিজ্ঞপ্তি পেয়েছি যে এক্সকোড 10.3 এ আপগ্রেড পাওয়া যায় এবং এটিতে আইওএস 12.4, টিভিএস 12.4, ওয়াচস 5.3 এবং ম্যাকোস মোজাভে 10.14.6 এর এসডিকে অন্তর্ভুক্ত রয়েছে। আমি এটি আমার 10.14.5 মেশিনগুলির মধ্যে একটি ইনস্টল করেছি এবং এটি চালিয়েছি এবং এটির মতো অতিরিক্ত উপাদান ইনস্টল করেছি এবং মনে হয় এটি /usr/include
অক্ষত রয়েছে।
পরে একই দিন, আমি আবিষ্কার করেছি যে ম্যাকস মোজাভে 10.14.6 খুব কমান্ড লাইন ইউটিলিটিস প্যাকেজ আইআইআরসি সহ (সিস্টেমের পছন্দসমূহ ⟶ সফ্টওয়্যার আপডেট) উপলব্ধ ছিল (এটি ডাউনলোড এবং স্বয়ংক্রিয়ভাবে ইনস্টল হয়েছিল)। ও / গুলি আপডেট ইনস্টল করা, আরও একবার মুছে ফেলল /usr/include
, কিন্তু open
উত্তরের উপরের কমান্ডটি আবার এটি পুনঃস্থাপন করেছে। open
কমান্ডের জন্য ফাইলটিতে আমার তারিখটি ছিল 2019-07-15।
এক্সকোড 11.0 এ আপগ্রেড করুন (ক্যাটালিনা 10.15 এর জন্য)
এক্সকোড ১১.০ ("আইওএস 13, টিভিএসএস 13, ওয়াচওএস 6 এবং ম্যাকোস ক্যাটালিনা 10.15" এর জন্য সুইফ্ট 5.1 এবং এসডিকে অন্তর্ভুক্ত করা হয়েছে) 2019-09-21 প্রকাশিত হয়েছিল। আমাকে 'আপডেট উপলভ্য' সম্পর্কে অবহিত করা হয়েছিল, এবং অ্যাপ্লিকেশন স্টোর অ্যাপ (আপডেট ট্যাব) এর মাধ্যমে সমস্যা ছাড়াই এবং ফাটজ না করে ম্যাকোস মোজভেভ 10.14.6 চলমান মেশিনগুলিতে এটি ডাউনলোড এবং ইনস্টল করেছি /usr/include
। ইনস্টলেশন করার পরপরই (নিজেই অ্যাপ্লিকেশন চালানোর আগে), আমি পুনঃসংশোধনের চেষ্টা করেছি এবং আমাকে বলা হয়েছিল:
এক্সকোড / আইওএস লাইসেন্সের সাথে সম্মত হওয়ার জন্য অ্যাডমিন সুবিধাগুলি প্রয়োজন, দয়া করে "সুডো এক্সকোডবিল্ড-লাইসেন্স" চালান এবং তারপরে এই আদেশটি আবার চেষ্টা করুন।
( sudo xcodebuild -license
) চালানো আমাকে সংকলক চালানোর অনুমতি দেয়। তার পর থেকে, আমি প্রয়োজনীয় অতিরিক্ত উপাদানগুলি ইনস্টল করতে অ্যাপ্লিকেশনটি চালিয়েছি; এখনও কোন সমস্যা নেই। আমি নিজেই কাতালিনায় আপগ্রেড হওয়ার পরে কী হবে তা দেখা যায় - তবে আমার ম্যাকোস মোজাভেভ 10.14.6 মেশিনগুলি এই মুহুর্তে (2019-09-24) ঠিক আছে।
echo "#include <a.h>" | gcc -v -x c -