TL;Tiến sĩ.
Đảm bảo bạn đã tải xuống gói "Công cụ dòng lệnh" mới nhất và chạy gói này từ thiết bị đầu cuối (dòng lệnh):
mở /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Để biết một số thông tin về Catalina, hãy xem
Không thể biên dịch chương trình C trên máy Mac sau khi nâng cấp lên Catalina 10.15.
Để trích xuất một câu trả lời nửa mạch lạc từ một bài đánh giá khá sâu rộng...
Lời nói đầu
nói chung là,
xcode-select --install
là giải pháp đúng đắn, nhưng có vẻ như lần này nó không giúp ích được gì. Bạn đã thử chạy GUI Xcode chính chưa? Nó có thể cài đặt thêm một số phần mềm và dọn dẹp cho bạn. Tôi đã làm điều này sau khi cài đặt Xcode 10.0, nhưng cách đây một tuần hoặc hơn, rất lâu trước khi nâng cấp lên Mojave.
Tôi nhận thấy rằng nếu GCC của bạn được cài đặt trong
/usr/local/bin
, thì có thể bạn không sử dụng GCC từ Xcode;
/usr/bin
中。
Tôi cũng đã cập nhật macOS 10.14 Mojave và Xcode 10.0. Tuy nhiên, hệ thống
/usr/bin/gcc
và hệ thống
/usr/bin/clang
tất cả đều làm việc cho tôi (
Apple LLVM phiên bản 10.0.0 (clang-1000.11.45.2) Mục tiêu: x86_64-apple-darwin18.0.0
Có giá trị cho cả hai). GCC 8.2.0 trong nước của tôi đang ở
/usr/bao gồm
Có vấn đề với tiêu đề không tìm thấy trong
/usr/local/bin/gcc
Cũng không thể tìm thấy tiêu đề của vấn đề là song song.
Tôi đã làm một số so sánh và máy Mojave của tôi hoàn toàn không có nó
/usr/bao gồm
,Nhưng
/usr/bin/clang
Nó biên dịch tốt. cái đầu(
_stdio.h
, với dấu gạch dưới ở đầu) trong phần trước của tôi
/usr/bao gồm
in; hiện bị thiếu (do đó tôi gặp phải sự cố với GCC 8.2.0). tôi đã chạy
xcode-select --install
, nó nói "
xcode-select: lưu ý: yêu cầu cài đặt cho các công cụ dành cho nhà phát triển dòng lệnh
", sau đó chạy trình cài đặt GUI, trình cài đặt này hiển thị cho tôi giấy phép mà tôi đã đồng ý, đồng thời nó đã tải xuống và cài đặt công cụ dòng lệnh - hoặc đúng như vậy.
Sau đó, tôi chạy GUI Xcode (không gian lệnh, Xcode, trả về) và nó cho biết cần cài đặt thêm phần mềm nhưng vẫn không có gì. nhưng tôi có thể sử dụng
/usr/bao gồm
Và
/usr/bin/clang
biên dịch và
/usr/bin/gcc
các tùy chọn chỉ ra rằng họ đang sử dụng
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
giải pháp làm việc
Sau đó
Maxxxx
ghi nhận:
Tôi đã tìm ra cách. Nếu chúng tôi đang sử dụng Xcode 10, bạn sẽ nhận thấy rằng nếu bạn điều hướng đến
-v
, bạn sẽ không còn thấy thư mục có tên "include", đó là lý do tại sao thiết bị đầu cuối phàn nàn về việc thiếu các tệp tiêu đề trong thư mục "bao gồm". hiện hữu
Ghi chú phát hành Xcode 10.0, nó cho thấy có một gói:
/Thư viện/Nhà phát triển/CommandLineTools/Gói/macOS_SDK_headers_for_macOS_10.14.pkg
Bạn nên cài đặt gói để cài đặt
/usr
thư mục. Đã đến lúc bạn phải đi.
Khi vẫn thất bại, hãy đọc hướng dẫn sử dụng hoặc trong trường hợp này là ghi chú phát hành. Khi tôi biết rằng Apple muốn từ bỏ di sản Unix của họ, tôi không ngạc nhiên mà chỉ thất vọng. Nếu họ cẩn thận thì họ đã đuổi tôi đi rồi. Cảm ơn bạn đã thông tin.
Sau khi cài đặt gói bằng lệnh bên dưới trong dòng lệnh, tôi đã cài đặt lại
/usr/bao gồm
, GCC 8.2.0 của tôi hoạt động trở lại.
mở /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Tải xuống công cụ dòng lệnh
正如
bàng quangmột cách có giá trị
bình luậnNhư đã chỉ ra trong bài viết, bạn cần tải xuống bộ công cụ dòng lệnh cho xcode10.1 trên Mojave 10.14, bạn có thể tải xuống từ trang web sau:
https://developer.apple.com/download/more/
Bạn cần đăng nhập bằng ID Apple của mình để tải xuống. Sau khi quá trình tải xuống hoàn tất, hãy cài đặt bộ công cụ dòng lệnh. Sau đó làm theo hướng dẫn trong phần "Giải pháp hiệu quả" để cài đặt các tệp tiêu đề.
Tính năng này hoạt động trên Mojave 10.14.1 của tôi. Chắc hẳn tôi đã tải xuống cái này trước đây nhưng tôi đã quên nó khi trả lời câu hỏi này.
Đã nâng cấp lên Mojave 10.14.4 và Xcode 10.2
Khoảng ngày 17 tháng 5 năm 2019, tôi đã cập nhật Mojave 10.14.4 và các công cụ dòng lệnh Xcode 10.2 đã được nâng cấp (hoặc các công cụ dòng lệnh Xcode 10.1 đã được nâng cấp lên 10.2). hiển thị ở trên
/usr/bao gồm
lệnh sửa các tiêu đề bị thiếu. Nâng cấp Xcode chính của bạn lên 10.2 và cài đặt lại các công cụ dòng lệnh và gói tiêu đề vẫn có thể gặp một chút rủi ro.
Nâng cấp lên Xcode 10.3 (dành cho Mojave 10.14.6)
Vào ngày 22 tháng 7 năm 2019, tôi được thông báo qua App Store rằng đã có bản nâng cấp lên Xcode 10.3, bao gồm SDK cho iOS 12.4, tvOS 12.4, watchOS 5.3 và macOS Mojave 10.14.6. Tôi đã cài đặt nó trên máy 10.14.5 của mình, chạy nó và cài đặt các thành phần bổ sung như nó đề xuất và nó dường như vẫn giữ nguyên
mở
tính chính trực.
Cuối cùng ngày hôm đó, tôi phát hiện ra rằng macOS Mojave 10.14.6 cũng có sẵn (Tùy chọn hệ thống ⟶ Cập nhật phần mềm), cùng với gói tiện ích dòng lệnh IIRC (nó đã được tải xuống và cài đặt tự động). Cài đặt bản cập nhật o/s lại xóa nó
/usr/bao gồm
, nhưng trả lời ở trên cùng
/usr/bao gồm
Lệnh khôi phục nó một lần nữa. tôi ở đây
mở
Ngày trên tệp lệnh là 2019-07-15.
Nâng cấp lên XCode 11.0 (dành cho Catalina 10.15)
Bản nâng cấp lên XCode 11.0, bao gồm Swift 5.1 và SDK cho iOS 13, tvOS 13, watchOS 6 và macOS Catalina 10.15, được phát hành vào ngày 21 tháng 9 năm 2019. Tôi đã nhận được thông báo "Có sẵn bản cập nhật" và đã tải xuống và cài đặt nó qua ứng dụng AppStore (tab Cập nhật) vào máy tính chạy macOS Mojave 10.14.6 của mình mà không gặp vấn đề gì và không cần phải thực hiện lại
mở
. Ngay sau khi cài đặt (trước khi chạy ứng dụng), tôi đã thử biên dịch lại và được thông báo:
Việc đồng ý với giấy phép Xcode/iOS yêu cầu đặc quyền của quản trị viên, vui lòng chạy "sudo xcodebuild-license" và thử lại lệnh.
Chạy cái này (
/usr/bao gồm
) cho phép tôi chạy trình biên dịch. Kể từ đó, tôi đã chạy ứng dụng để cài đặt các thành phần bổ sung mà nó cần; Vẫn còn phải xem điều gì sẽ xảy ra khi tôi nâng cấp lên Catalina - nhưng máy macOS Mojave 10.14.6 của tôi hiện vẫn ổn (24/09/2019).
Tôi là một lập trình viên xuất sắc, rất giỏi!