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 --install
doğ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/gcc
sistem /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.0
her ikisi için.) Ben 8.2.0 görmediklerine başlıklarının benim ev yapımı GCC ile ilgili bir sorun /usr/include
ile 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/clang
Tamam'ı 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 --install
ve 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/clang
ve /usr/bin/gcc
- ve -v
seç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/include
klasö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/include
yine 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). open
Gö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/include
sağ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 open
cevabın üstündeki komut tekrar eski haline getirildi. İçin dosyada bulunduğum tarihopen
Komutun 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 -