Saya telah menggunakan perintah gcc pada terminal untuk mengkompilasi program C tetapi tiba-tiba, setelah pembaruan ke OS Mac saya (ke macOS 10.14 Mojave, dan XCode 10.0), saya mulai menerima pesan:
test.c:8:10: fatal error: stdio.h: No such file or directory
#include <stdio.h>
^~~~~~~~~
compilation terminated.
Saya sudah menginstal gcc karena saya dapat menemukannya /usr/local/bin
dan benar-benar ada gcc di sana. Saya mencoba menjalankan file yang sama di iMac saya yang lain dan berhasil tanpa masalah.
Saya mencoba menjalankan xcode-select --install
dan sudah diinstal, maka itu tidak memperbaiki masalah yang saya alami sekarang. Saya menduga bahwa jalannya kacau karena sepertinya tidak dapat menemukannya gcc
setelah saya mulai menyalin dan menempelkan beberapa perintah dari sumber lain untuk menyelesaikan masalah ini.
Perlu bantuan dalam hal ini.
echo "#include <a.h>" | gcc -v -x c -
xocde-select --install
adalah solusi yang tepat. Di mana Anda tingkatkan ke? Mojave 10.14? XCode mana yang sudah Anda instal? 10.0 atau versi lain?open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
pada baris perintah), saya miliki/usr/include
lagi, dan GCC 8.2.0 saya berfungsi sekali lagi. Terima kasih untuk penunjuknya; dilakukan dengan baik pada menemukannya. Saya sarankan Anda menuliskan jawabannya karena mungkin akan ada orang lain yang mengalami masalah.Jawaban:
TL; DR
Pastikan Anda telah mengunduh paket 'Alat Baris Perintah' terbaru dan menjalankannya dari terminal (baris perintah):
Untuk beberapa informasi tentang Catalina, lihat Tidak dapat mengkompilasi program C pada Mac setelah meningkatkan ke Catalina 10.15 .
Mengekstraksi jawaban semi-koheren dari komentar yang agak luas ...
Pembukaan
Sangat sering,
xcode-select --install
telah menjadi solusi yang tepat, tetapi tampaknya tidak membantu saat ini. Sudahkah Anda mencoba menjalankan antarmuka GUI Xcode utama? Mungkin menginstal beberapa perangkat lunak tambahan untuk Anda dan membersihkan. Saya melakukan itu setelah menginstal Xcode 10.0, tetapi seminggu atau lebih yang lalu, jauh sebelum memutakhirkan ke Mojave.Saya amati bahwa jika GCC Anda diinstal
/usr/local/bin
, Anda mungkin tidak menggunakan GCC dari Xcode; yang biasanya dipasang di/usr/bin
.Saya juga telah memperbarui ke macOS 10.14 Mojave dan Xcode 10.0. Namun, baik sistem
/usr/bin/gcc
dan sistem/usr/bin/clang
berfungsi untuk saya (Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0
untuk keduanya.) Saya punya masalah dengan GCC 8.2.0 buatan rumah saya tidak menemukan header/usr/include
, yang sejajar dengan masalah Anda dengan/usr/local/bin/gcc
tidak menemukan header juga.Saya telah melakukan sedikit perbandingan, dan mesin Mojave saya tidak memiliki
/usr/include
sama sekali, namun/usr/bin/clang
mampu mengkompilasi OK. Tajuk (_stdio.h
, dengan garis bawah utama) ada di yang lama/usr/include
; itu hilang sekarang (maka masalah saya dengan GCC 8.2.0). Saya berlarixcode-select --install
dan berkata "xcode-select: note: install requested for command line developer tools
" dan kemudian menjalankan pemasang GUI yang menunjukkan kepada saya lisensi yang saya setujui, dan itu mengunduh dan menginstal alat-alat baris perintah - atau seperti yang diklaimnya.Saya kemudian menjalankan Xcode GUI (ruang perintah, Xcode, kembali) dan dikatakan perlu menginstal beberapa perangkat lunak lagi, tetapi masih belum ada
/usr/include
. Tapi saya bisa mengkompilasi dengan/usr/bin/clang
dan/usr/bin/gcc
- dan-v
opsi menyarankan mereka gunakanSolusi kerja
Lalu Maxxx mencatat :
Ketika semuanya gagal, baca manual atau, dalam hal ini, catatan rilis. Saya tidak terlalu terkejut menemukan Apple ingin membalikkan punggung mereka pada warisan Unix mereka, tetapi saya kecewa. Jika mereka berhati-hati, mereka bisa mengusir saya. Terima kasih untuk informasinya.
Setelah menginstal paket menggunakan perintah berikut di baris perintah, saya miliki
/usr/include
lagi, dan GCC 8.2.0 saya berfungsi sekali lagi.Mengunduh Alat Baris Perintah
Seperti yang ditunjukkan Vesal dalam komentar berharga , Anda perlu mengunduh paket Alat Baris Perintah untuk Xcode 10.1 di Mojave 10.14, dan Anda dapat melakukannya dari:
Anda harus masuk dengan ID Apple untuk bisa mengunduh. Setelah selesai mengunduh, instal paket Alat Baris Perintah. Kemudian pasang tajuk seperti yang dijelaskan di bagian 'Solusi Bekerja'.
Ini bekerja untuk saya di Mojave 10.14.1. Saya pasti sudah mengunduh ini sebelumnya, tetapi saya sudah lupa pada saat saya menjawab pertanyaan ini.
Tingkatkan ke Mojave 10.14.4 dan Xcode 10.2
Pada atau sekitar 2019-05-17, saya memperbarui ke Mojave 10.14.4, dan alat baris perintah Xcode 10.2 juga ditingkatkan (atau alat baris perintah Xcode 10.1 ditingkatkan menjadi 10.2). Itu
open
perintah yang ditunjukkan di atas tetap header hilang. Mungkin masih ada petualangan yang datang dengan meningkatkan Xcode utama ke 10.2 dan kemudian menginstal ulang alat-alat baris perintah dan paket header.Tingkatkan ke Xcode 10.3 (untuk Mojave 10.14.6)
Pada 2019-07-22, saya mendapat pemberitahuan melalui App Store bahwa upgrade ke Xcode 10.3 tersedia dan itu termasuk SDK untuk iOS 12.4, tvOS 12.4, watchOS 5.3 dan macOS Mojave 10.14.6. Saya menginstalnya salah satu dari 10.14.5 mesin saya, dan menjalankannya, dan menginstal komponen tambahan seperti yang disarankan, dan tampaknya telah meninggalkan
/usr/include
utuh.Kemudian pada hari yang sama, saya menemukan bahwa macOS Mojave 10.14.6 juga tersedia (System Preferences Update Update Software), bersama dengan paket Command Line Utilities IIRC (itu diunduh dan diinstal secara otomatis). Menginstal pembaruan o / s, sekali lagi, menghapus
/usr/include
, tetapiopen
perintah di bagian atas jawaban mengembalikannya lagi. Tanggal yang saya miliki di file untukopen
perintah adalah 2019-07-15.Tingkatkan ke XCode 11.0 (untuk Catalina 10.15)
Upgrade ke XCode 11.0 ("termasuk Swift 5.1 dan SDKs untuk iOS 13, tvOS 13, watchOS 6 dan macOS Catalina 10.15") dirilis 2019-09-21. Saya diberitahu tentang 'pembaruan yang tersedia', dan mengunduh serta menginstalnya ke mesin yang menjalankan macOS Mojave 10.14.6 melalui aplikasi App Store (tab pembaruan) tanpa masalah, dan tanpa harus repot
/usr/include
. Segera setelah instalasi (sebelum menjalankan aplikasi itu sendiri), saya mencoba sebuah kompilasi dan diberi tahu:Menjalankan itu (
sudo xcodebuild -license
) memungkinkan saya untuk menjalankan kompiler. Sejak itu, saya menjalankan aplikasi untuk menginstal komponen tambahan yang dibutuhkan; masih tidak masalah. Masih harus dilihat apa yang terjadi ketika saya memutakhirkan ke Catalina sendiri - tetapi mesin macOS Mojave 10.14.6 saya baik-baik saja saat ini (2019-09-24).sumber
/usr/include
, dan paket yang tercantum dalam jawaban di atas tidak ada/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
danxcode-select --install
mengatakan bahwa alat baris perintah saat ini tidak tersedia.fatal error: bits/ctype_base.h: No such file or directory: #include <bits/ctype_base.h>
ketika mengkompilasi GCC 7.4.0 menggunakan libstdc ++ di Mojave untuk sayaSetelah mencoba setiap jawaban yang dapat saya temukan di sini dan online, saya masih mendapatkan kesalahan untuk beberapa header yang hilang. Ketika mencoba mengkompilasi pyRFR, saya mendapatkan kesalahan tentang
stdexcept
tidak ditemukan, yang tampaknya tidak diinstal/usr/include
dengan header lain. Namun, saya menemukan di mana ia bersembunyi di Mojave dan menambahkan ini ke akhir~/.bash_profile
file saya :export CPATH=/Library/Developer/CommandLineTools/usr/include/c++/v1
Setelah melakukan itu, saya sekarang dapat mengkompilasi pyRFR dan program C / C ++ lainnya. Menurut
echo | gcc -E -Wp,-v -
, gcc sedang mencari di lokasi lama untuk tajuk ini (tanpa/c++/v1
), tetapi bukan lokasi baru, jadi menambahkan bahwa untuk CFLAGS memperbaikinya.sumber
Kapan kamu
Mojave 10.14.6
/usr/include
telah dihapus lagiThe file /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg does not exist.
danxcode-select --install xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Kemudian, apa yang membantu saya memulihkan paket yang disebutkan, menghapus seluruh
CommandLineTools
folder(sudo) rm -rf /Library/Developer/CommandLineTools
dan menginstalnya kembalixcode-select --install
.sumber
macOS_SDK_headers_for_macOS_10.14.pkg
dapatkan tersedia, dan perintahopen /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
melakukan apa yang seharusnya dilakukan. Terima kasih banyak!!export CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include
Masalahnya adalah bahwa Xcode, terutama Xcode 10.x, belum menginstal semuanya, jadi pastikan alat-alat baris perintah diinstal, ketik ini di shell terminal:
juga jalankan Xcode dan pastikan semua instalasi yang diperlukan telah diinstal (Anda harus diminta jika tidak.) dan karena Xcode 10 tidak menginstal Mac OS SDK lengkap, jalankan installer di
karena paket ini tidak diinstal oleh Xcode 10.
sumber
Saya telah menemukan solusi dan penjelasan yang bagus di komentar GitHub ini . Trik-nya:
Melakukan pekerjaan.
sumber
CATATAN: Berikut ini kemungkinan sangat kontekstual dan terbatas waktu sebelum beralih / ketersediaan umum macos Catalina 10.15. Laptop baru. Saya menulis ini 1 Oktober 2019.
Keadaan khusus ini, saya percaya, apa yang menyebabkan masalah membangun bagi saya. Mereka mungkin tidak berlaku dalam kebanyakan kasus lain.
Konteks:
macos 10.14.6 Mojave, Xcode 11.0, tepat sebelum peluncuran macos Catalina 10.15 . Macbook Pro yang baru dibeli.
kegagalan aktif
pip install psycopg2
, yang pada dasarnya adalah paket Python yang dikompilasi dari sumber.Saya sudah melakukan sejumlah penyesuaian yang disarankan dalam jawaban yang diberikan di sini.
Kesalahan saya:
Apa yang saya lakukan sejauh ini, tanpa memperbaiki apa pun:
xcode-select --install
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Masih kesalahan yang sama pada stdio.h.
yang ada di sejumlah tempat:
Jadi, mari kita pergi ke direktori pertama
clang
yang mengeluh dan lihat:Hah, kami memiliki symlink untuk MacOSX10.15.sdk , tetapi tidak ada untuk MacOSX10.14.sdk . Ini
clang
kesalahan pertama saya lagi:clang: warning: no such sysroot directory: '/Applications/Xcode.app/.../Developer/SDKs/MacOSX10.14.sdk' [-Wmissing-sysroot]
Dugaan saya adalah Apple melompati pistol pada konfigurasi xcode mereka dan sudah berpikir mereka ada di Catalina. Karena ini adalah Mac baru, konfigurasi lama untuk 10.14 tidak ada.
THE FIX:
Mari symlink 10.14 dengan cara yang sama seperti 10.15:
ln -s MacOSX.sdk/ MacOSX10.14.sdk
btw, jika saya pergi ke direktori SDK itu, saya menemukan:
HASIL:
pip install psycopg2
bekerja.Catatan: perintah pemasangan pip yang sebenarnya tidak merujuk ke MacOSX10.14.sdk , yang muncul kemudian, mungkin oleh mekanisme instalasi Python yang mengintrospeksi versi OS.
sumber
pip
kamu gunakan Saya pikir itu bisa menjadi masalah utama.Pastikan untuk memeriksa Preferensi Xcode -> Lokasi.
Alat Baris Perintah yang saya pilih adalah untuk versi Xcode sebelumnya (8.2.1 bukannya 10.1)
sumber
Punya masalah yang sama seperti OP
Isu
Upaya yang diupayakan
Saya menginstal versi terbaru XCode, namun, catatan rilis menunjukkan file yang disebutkan dalam perbaikan sebelumnya, dari Jonathan di sini, tidak lagi tersedia.
Detail di sini https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes , di bawah bagian Fitur Baru .
Solusi yang berhasil untuk saya ...
Menggunakan detail dalam komentar ini, https://github.com/SOHU-Co/kafka-node/issues/881#issuecomment-396197724
Saya menemukan bahwa
brew doctor
melaporkan bahwa saya tidak menggunakan yang termasuk dalam/usr/local/
folder saya .Jadi untuk memperbaikinya, saya menggunakan perintah yang disediakan oleh pengguna HowCrazy , untuk menemukan menyertakan tidak terpakai dan memindahkannya ke folder sementara.
Diulangi di sini ...
Setelah menjalankan skrip, masalah file sertakan hilang. nb: Saya juga berkomentar tentang masalah ini di sini .
sumber
Saya mengalami masalah ini dan tidak ada yang berhasil . Saya berlari
xcode-select --install
dan juga menginstal/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
.LATAR BELAKANG
Karena saya mengalami masalah dengan App Store pada laptop baru, saya terpaksa mengunduh penginstal Xcode Beta dari situs web Apple untuk menginstal Xcode di luar App Store . Jadi saya hanya menginstal Xcode Beta .
LARUTAN
Ini, (saya pikir), dibuat
clang
untuk tidak menemukanSDKROOT
direktori/Applications/Xcode.app/....
, karena tidak adaBeta
di jalan, atau mungkin Xcode Beta tidak menginstalnya (saya tidak tahu). Untuk memperbaiki masalah ini, saya harus menghapus Xcode Beta dan menyelesaikan masalah App Store untuk menginstal versi rilis.tldr;
Jika Anda memiliki Xcode Beta , coba bersihkan semuanya dan instal versi rilis sebelum mencoba solusi yang berfungsi untuk orang lain.
sumber
Saya mencoba hampir semua solusi yang diposting dan tidak ada yang berhasil untuk saya. Saya menggunakan Mojave OS (10.14.6) dan apa yang akhirnya berhasil bagi saya (setelah menghapus dan menginstal ulang Xcode dan CLTs dan header SDK):
dengan
Sekarang paket R yang mengandalkan kompiler C berhasil diinstal
sumber
Seperti yang ditunjukkan Jonathan Leffler di atas, file macOS_SDK_headers.pkg tidak lagi ada di Xcode 10.1.
Apa yang berhasil bagi saya adalah melakukan
brew upgrade
dan pembaruan gcc dan / atau apa pun yang dilakukan homebrew di belakang layar menyelesaikan masalah jalur.sumber
Ketergantungan apue.h masih hilang pada saya
/usr/local/include
setelah saya berhasil memperbaiki masalah ini pada Mac OS Catalina mengikuti instruksi dari jawaban iniSaya mengunduh dependensi secara manual dari git dan meletakkannya di
/usr/local/include
sumber
Saya memiliki masalah yang sama dengan Golang (debugging dengan Goland) setelah migrasi. Satu-satunya (konyol) yang membantu adalah mengganti nama folder berikut:
Rupanya itu terkait dengan file-file lama yang diinstal homebrew dan sekarang rusak.
sumber
@ JL Peyret benar!
jika Anda makro 10.14.6 Mojave, Xcode 11.0+
kemudian
cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
sudo ln -s MacOSX.sdk / MacOSX10.14.sdk
sumber