TL; DR
En son 'Komut Satırı Araçları' paketini indirdiğinizden ve bunu bir terminalden (komut satırı) çalıştırdığınızdan emin olun:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Catalina hakkında bilgi için bkz . Catalina 10.15 sürümüne yükselttikten sonra Mac'te C programı derlenemiyor .
Oldukça kapsamlı yorumlardan yarı tutarlı bir cevap çıkarılıyor…
önsöz
Çoğu zaman, xcode-select --installdoğru çözüm olmuştur, ancak bu sefer yardımcı olmuyor gibi görünüyor. Ana Xcode GUI arayüzünü çalıştırmayı denediniz mi? Sizin için ekstra yazılım yükleyebilir ve temizleyebilir. Bunu Xcode 10.0'u yükledikten sonra yaptım, ancak bir hafta veya daha fazla önce, Mojave'ye yükseltmeden çok önce.
GCC'niz kurulu ise /usr/local/bin , muhtemelen Xcode'dan GCC'yi kullanmadığınızı ; normalde yüklü /usr/bin.
Ben de macOS 10.14 Mojave ve Xcode 10.0'a güncelledim. Ancak, sistem hem /usr/bin/gccsistem /usr/bin/clang(benim için çalışıyoruz Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0her ikisi için.) Ben 8.2.0 görmediklerine başlıklarının benim ev yapımı GCC ile ilgili bir sorun /usr/includeile sorunun paralel olduğu,/usr/local/bin/gcc başlıkları ya bulamamak.
Biraz karşılaştırma yaptım ve Mojave makinemde hiç yok /usr/include, ancak /usr/bin/clangTamam'ı derleyebiliyor. Bir başlık ( _stdio.h, önde gelen alt çizgi ile) benim eski vardı /usr/include; şimdi eksik (bu nedenle GCC 8.2.0 ile ilgili sorunum). Koştum xcode-select --installve dedi ki "xcode-select: note: install requested for command line developer tools " ve sonra kabul ettiğim bir lisansı gösteren bir GUI yükleyicisi çalıştırdım ve komut satırı araçlarını indirip yükledi - ya da iddia etti.
Daha sonra Xcode GUI (komut alanı, Xcode, dönüş) çalıştırdım ve daha fazla yazılım yüklemesi gerektiğini söyledi, ancak yine de hayır /usr/include. Ama derleyebilirim /usr/bin/clangve /usr/bin/gcc- ve -vseçenek kullandıklarını gösteriyor
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Çalışma çözümü
Sonra Maxxx şunları kaydetti :
Bir yol buldum. Xcode 10 kullanıyorsak,/usr , Finder'da giderseniz, artık 'include' adlı bir klasör , bu yüzden terminalde içerilen başlık dosyalarının yokluğundan şikayet ediyor 'include' klasörü. In Xcode 10.0 Sürüm Notları , bir paket olduğunu söyler:
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
ve /usr/includeklasörü yüklemek için bu paketi yüklemelisiniz. O zaman gitmek için iyi olmalısın.
Her şey başarısız olduğunda, kılavuzu veya bu durumda sürüm notlarını okuyun. Apple'ın Unix mirasına sırtını çevirmek istediğini bulmak beni çok şaşırtmadı, ama hayal kırıklığına uğradım. Eğer dikkatli olurlarsa beni uzaklaştırabilirlerdi. Bilgi için teşekkürler.
Komut satırında aşağıdaki komutu kullanarak paketi yükledikten sonra, /usr/includeyine var ve GCC 8.2.0'ım bir kez daha çalışıyor.
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Komut Satırı Araçlarını İndirme
As Vesal değerli içinde işaret yorumun , sen Mojave 10.14 tarihinde Xcode 10.1 için Komut Satırı Araçları paketini indirmek gerekir ve aralarından yapabilirsiniz:
İndirme işlemini alabilmek için bir Apple Kimliği ile giriş yapmanız gerekir. İndirme işlemini tamamladığınızda Komut Satırı Araçları paketini yükleyin. Ardından, başlıkları 'Çalışma Çözümü' bölümünde açıklandığı şekilde takın.
Bu benim için Mojave 10.14.1'de çalıştı. Bunu daha önce indirmiş olmalıydım, ama bu soruyu cevapladığım zaman unutmuştum.
Mojave 10.14.4 ve Xcode 10.2 sürümüne yükseltme
2019-05-17'de veya hakkında, Mojave 10.14.4'e güncelledim ve Xcode 10.2 komut satırı araçları da yükseltildi (veya Xcode 10.1 komut satırı araçları 10.2'ye yükseltildi). openGösterilen komut yukarıdaki eksik başlıklarını düzeltildi. Ana Xcode'u 10.2'ye yükseltmek ve daha sonra komut satırı araçlarını ve üstbilgiler paketini yeniden yüklemekle birlikte gelmek için maceralar olabilir.
Xcode 10.3'e yükseltin (Mojave 10.14.6 için)
2019-07-22'de App Store aracılığıyla Xcode 10.3'e yükseltmenin mevcut olduğunu ve iOS 12.4, tvOS 12.4, watchOS 5.3 ve macOS Mojave 10.14.6 için SDK'ları içerdiğini fark ettim. 10.14.5 makinelerimden birini kurdum ve çalıştırdım ve önerildiği gibi ekstra bileşenler kurdum ve /usr/includesağlam kalmış gibi görünüyor .
Aynı günün ilerleyen saatlerinde macOS Mojave 10.14.6 sürümünün de (Sistem Tercihleri ⟶ Yazılım Güncellemesi) ve Komut Satırı Yardımcı Programları paketi IIRC'nin (otomatik olarak indirilip yüklendiği) bulunduğunu keşfettim. O / s güncellemesinin yüklenmesi bir kez daha silindi /usr/include, ancak opencevabın üstündeki komut tekrar eski haline getirildi. İçin dosyada bulunduğum tarihopenKomutun 2019-07-15 idi.
XCode 11.0'a yükseltin (Catalina 10.15 için)
XCode 11.0'a yükseltme ("iOS 13, tvOS 13, watchOS 6 ve macOS Catalina 10.15 için Swift 5.1 ve SDK'ları içerir") 2019-09-21 yayınlandı. 'Güncellemeler mevcut' konusunda bilgilendirildim ve App Store uygulaması (güncellemeler sekmesi) aracılığıyla macOS Mojave 10.14.6 çalıştıran makinelere sorunsuz bir şekilde indirip yükledim /usr/include. Kurulumdan hemen sonra (uygulamanın kendisini çalıştırmadan önce), yeniden derlemeyi denedim ve söylendi:
Xcode / iOS lisansını kabul etmek için yönetici ayrıcalıkları gerekir, lütfen “sudo xcodebuild -license” komutunu çalıştırın ve ardından bu komutu yeniden deneyin.
Bunu sudo xcodebuild -licenseçalıştırmak derleyiciyi çalıştırmama izin verdi. O zamandan beri, uygulamayı ekstra bileşenleri yüklemek için çalıştırıyorum; hala sorun yok. Catalina'ya yükselttiğimde ne olacağı hala görülüyor - ama macOS Mojave 10.14.6 makinelerim şu anda iyi durumda (2019-09-24).
echo "#include <a.h>" | gcc -v -x c -