টি এল; ডিআর
দেখা যাচ্ছে যে অ্যাপল /usr/include
এমন কিছু হিসাবে বিবেচনা করে যা ডোডোর পথে চলে গেছে - এটি বিলুপ্তপ্রায় - অথবা সম্ভবত এটি মন্টি পাইথনের তোতার মতো ।
অ্যাপল-সরবরাহিত জিসিসি ব্যবহার করা (প্রকৃতপক্ষে সংস্করণ তথ্য হিসাবে যেমনটি অন্য কোনও নামে ঝাঁকুনি দেওয়া) বা কলং সমস্যাগুলি এড়ায়। উভয়ই /usr/bin/gcc
এবং /usr/bin/clang
নীচে সিস্টেম লাইব্রেরি চারটি ডিরেক্টরি স্তর খুঁজে পাবেন:
/Applications/Xcode.app/Contents/Developer/Platforms/…
আপনি যদি নিজের জিসিসি বা অন্যান্য সংকলক তৈরি করেন তবে এক্সকোড অ্যাপ্লিকেশন ডিরেক্টরিতে সিস্টেম লাইব্রেরিগুলি সন্ধান করার জন্য আপনাকে সম্ভবত এটি কনফিগার করতে হবে।
এক্সপ্লোরেসন
আপগ্রেডের সাথে সাথেই, আমি এক্সকোড ১১.০ চালিয়েছি। এটি কিছু অতিরিক্ত উপাদান ইনস্টল করতে চেয়েছিল, তাই আমি এটি এটি করতে দিই। যাইহোক, এটি পুনরায় স্থাপন /usr/include
বা ডিরেক্টরি অধীনে না /Library
।
পূর্ববর্তী প্রশ্নের পরামর্শের অন্য বিটগুলির মধ্যে একটি ছিল:
xcode-select --install
এটি করার সময়, এটি দাবি করেছিল যে এটি কমান্ড লাইন ইউটিলিটিগুলি ডাউনলোড করেছে এবং এটি নিশ্চিত করেছে যে /usr/bin/gcc
এবং /usr/bin/clang
অন্যান্য উপস্থিত রয়েছে। এটি একটি দরকারী পদক্ষেপ (যদিও আমি তারা আগে উপস্থিত ছিল কিনা তা সুনির্দিষ্টভাবে পরীক্ষা করিনি))
$ /usr/bin/gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.0 (clang-1100.0.33.8)
Target: x86_64-apple-darwin19.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
$
ব্যবহার করে /usr/bin/gcc
, এখন প্রোগ্রামগুলি সংকলন করা সম্ভব:
$ make CC=/usr/bin/gcc al
co RCS/al.c,v al.c
RCS/al.c,v --> al.c
revision 1.7
done
/usr/bin/gcc -I/Users/jleffler/inc -g -O3 -std=c11 -pedantic -Wall -Wextra -Werror -Wshadow -Wmissing-prototypes -Wpointer-arith -Wold-style-definition -Wcast-qual -Wstrict-prototypes -DHAVE_MEMMEM -DHAVE_STRNDUP -DHAVE_STRNLEN -DHAVE_GETDELIM -o al al.c -L/Users/jleffler/lib/64 -ljl
$
তবে /usr/include
এখনও নিখোঁজ রয়েছে। /Library
এখন অধীনে একটি ডিরেক্টরি আছে :
$ ls /Library/Developer
CommandLineTools PrivateFrameworks
$ ls /Library/Developer/CommandLineTools
Library SDKs usr
$ ls /Library/Developer/CommandLineTools/SDKs
MacOSX.sdk MacOSX10.14.sdk MacOSX10.15.sdk
$ ls /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/
Entitlements.plist SDKSettings.json System
Library SDKSettings.plist usr
$
আমরাও System
না Library
ডিরেক্টরির কিছু খুব আশাপ্রদ ধারণ করে।
অন্য সমস্ত ব্যর্থ হলে ম্যানুয়ালটি পড়ুন
পরবর্তী পদক্ষেপ - রিলিজ নোটগুলি সন্ধান করুন এবং পড়ুন:
এর সাথে সম্পর্কিত এমন কোনও তথ্য নেই। সুতরাং, সম্ভাবনা হ'ল (এএএএফআইএস, মাত্র এক ঘন্টা বা দু'বার চেষ্টা করার পরে) অ্যাপল আর সমর্থন করে না /usr/include
- যদিও এটির এখনও পুরোপুরি বোঝা আছে /usr/lib
(নেই)/lib
যদিও নেই)।
জিসিসি বিকল্পের সাথে আরও একটি সংকলন পরীক্ষা করার সময় -v
যুক্ত হয়েছে (আমি ব্যবহৃত মেকফাইলে সেটিংস UFLAGS
সি সংকলক কমান্ড লাইনে বিকল্প যুক্ত করে):
$ make UFLAGS=-v CC=/usr/bin/gcc ww
co RCS/ww.c,v ww.c
RCS/ww.c,v --> ww.c
revision 4.9
done
/usr/bin/gcc -I/Users/jleffler/inc -g -O3 -std=c11 -pedantic -Wall -Wextra -Werror -Wshadow -Wmissing-prototypes -Wpointer-arith -Wold-style-definition -Wcast-qual -Wstrict-prototypes -DHAVE_MEMMEM -DHAVE_STRNDUP -DHAVE_STRNLEN -DHAVE_GETDELIM -v -o ww ww.c -L/Users/jleffler/lib/64 -ljl
Apple clang version 11.0.0 (clang-1100.0.33.8)
Target: x86_64-apple-darwin19.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.15.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -disable-free -disable-llvm-verifier -discard-value-names -main-file-name ww.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=10.15 -target-cpu penryn -dwarf-column-info -debug-info-kind=standalone -dwarf-version=4 -debugger-tuning=lldb -ggnu-pubnames -target-linker-version 512.4 -v -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -I /Users/jleffler/inc -D HAVE_MEMMEM -D HAVE_STRNDUP -D HAVE_STRNLEN -D HAVE_GETDELIM -I/usr/local/include -O3 -Wall -Wextra -Werror -Wshadow -Wmissing-prototypes -Wpointer-arith -Wold-style-definition -Wcast-qual -Wstrict-prototypes -Wno-framework-include-private-from-public -Wno-atimport-in-framework-header -Wno-extra-semi-stmt -Wno-quoted-include-in-framework-header -pedantic -std=c11 -fdebug-compilation-dir /Users/jleffler/src/cmd -ferror-limit 19 -fmessage-length 110 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fobjc-runtime=macosx-10.15.0 -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o /var/folders/77/zx9nk6dn7_dg4xd4stvt42v00000gn/T/ww-4cb85b.o -x c ww.c
clang -cc1 version 11.0.0 (clang-1100.0.33.8) default target x86_64-apple-darwin19.0.0
ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/local/include"
ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
/Users/jleffler/inc
/usr/local/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)
End of search list.
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -macosx_version_min 10.15.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -o ww -L/Users/jleffler/lib/64 /var/folders/77/zx9nk6dn7_dg4xd4stvt42v00000gn/T/ww-4cb85b.o -ljl -L/usr/local/lib -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/lib/darwin/libclang_rt.osx.a
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil" -o ww.dSYM ww
$
ডেটা যে ঝাপটায় মূল তথ্য হ'ল:
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
সংকলনের জন্য এটি কার্যকরভাবে 'রুট' ডিরেক্টরি, সুতরাং এর জন্য নিম্নলিখিত অধীন ডিরেক্টরি থাকতে হবে usr
এবং usr/include
:
$ ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
Entitlements.plist SDKSettings.json System
Library SDKSettings.plist usr
$ ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr
bin include lib libexec share
$ ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
AppleTextureEncoder.h dns_util.h memory.h simd
AssertMacros.h dtrace.h menu.h slapi-plugin.h
Availability.h editline miscfs spawn.h
AvailabilityInternal.h err.h module.modulemap sqlite3.h
AvailabilityMacros.h errno.h monetary.h sqlite3ext.h
AvailabilityVersions.h eti.h monitor.h stab.h
…lots more lines…
dirent.h mach-o security xcselect.h
disktab.h mach_debug semaphore.h xlocale
dispatch machine servers xlocale.h
dlfcn.h malloc setjmp.h xpc
dns.h math.h sgtty.h zconf.h
dns_sd.h membership.h signal.h zlib.h
$
এটি দেখায় যে মাইল-লম্বা এবং সম্পূর্ণ অপ্রতিরোধ্য ডিরেক্টরি ডিরেক্টরিতে স্ট্যান্ডার্ড সি এবং পসিক্স শিরোনাম, এবং অ্যাপল-নির্দিষ্ট অতিরিক্ত রয়েছে s
পূর্ববর্তী /usr/local/
ডিরেক্টরি অক্ষত বলে মনে হচ্ছে; এর usr/local/include
অধীনে বিদ্যমান না থাকা সম্পর্কে সতর্কতা -isysrootdir
নিরীহ (এবং -v
বিকল্পটি ছাড়া দৃশ্যমান নয় )।
/usr/include
অ্যাপলের বর্তমান এক্সকোড সহ আপনাকে অ্যাপলের বিকাশকারী সরঞ্জামগুলি ব্যবহার করার দরকার নেই । শিরোনামগুলি এবং এর মধ্যে রয়েছেXcode.app/Contents/Developer/Platforms/SomePlatform/SDKs/SomeSDK
। (একাধিক টার্গেট প্ল্যাটফর্মগুলিকে সমর্থন করার জন্য বিভিন্ন ডিরেক্টরিতে শিরোনাম রাখা প্রয়োজন, এবং/usr/include
হোস্ট সিস্টেমের থেকে আলাদা সংস্করণ লক্ষ্য করে কোনও সংকলন দুর্ঘটনাক্রমে ফাইলগুলি ব্যবহার না করে তা নিশ্চিত করা ভাল না to )xcode-select -p
পথটি কী দেখায়? সক্রিয় বিকাশকারী ডিরেক্টরি?