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 Mojave


159

Tôi đã sử dụng lệnh gcc trên thiết bị đầu cuối để biên dịch các chương trình C nhưng thật bất ngờ, sau khi cập nhật lên hệ điều hành Mac của tôi (lên macOS 10.14 Mojave và XCode 10.0), tôi bắt đầu nhận được thông báo:

test.c:8:10: fatal error: stdio.h: No such file or directory
#include <stdio.h>
         ^~~~~~~~~
compilation terminated.

Tôi đã cài đặt gcc vì tôi có thể tìm thấy nó /usr/local/binvà thực sự có một gcc ở đó. Tôi đã thử chạy cùng một tệp trên iMac khác của tôi và nó hoạt động mà không gặp vấn đề gì.

Tôi đã thử chạy xcode-select --installvà nó đã được cài đặt, do đó nó không khắc phục được sự cố hiện tại của tôi. Tôi đoán rằng đường dẫn bị rối vì dường như nó không thể tìm thấy gccsau khi tôi bắt đầu sao chép và dán một số lệnh từ các tài nguyên khác để giải quyết vấn đề này.

Muốn giúp đỡ về điều này.


5
Bạn có thể kiểm tra đường dẫn tìm kiếm của gcc bằng cách sử dụngecho "#include <a.h>" | gcc -v -x c -
Matt

2
Rất thường xuyên, xocde-select --installlà giải pháp chính xác. Mà bạn đã nâng cấp lên? Mojave 10.14? XCode nào bạn đã cài đặt? Phiên bản 10.0 hay khác?
Jonathan Leffler

39
@JonathanLeffler Tôi đã tìm thấy một 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 / usr trong Finder, bạn sẽ không thấy thư mục có tên 'bao gồm' nữa, đó là lý do tại sao thiết bị đầu cuối phàn nàn về sự vắng mặt của các tệp tiêu đề được chứa trong 'bao gồm' thư mục. Trong tuyên bố phát hành này, developer.apple.com/documentation/xcode_release_notes/ , (bạn điều hướng đến / L Library / Nhà phát triển / CommonLineTools /Packages / macOS_SDK_headftimefor_macOS_10.14.pkg và chạy gói đó để bao gồm ' Sau đó, bạn nên tốt để đi.
Maxxx

1
Khi thất bại, đọc hướng dẫn! Hoặc ghi chú phát hành. Tôi không ngạc nhiên khi thấy Apple muốn quay lưng lại với di sản Unix. Tôi thất vọng. Nếu họ cẩn thận, họ có thể đuổi tôi đi. Cảm ơn bạn đã thông tin; Tôi sẽ thử nghiệm với nó sau (sau khi bịt mắt vài giờ).
Jonathan Leffler

16
Sau khi cài đặt gói ( open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgtại dòng lệnh), tôi /usr/includelại có một lần nữa và GCC 8.2.0 của tôi hoạt động trở lại. Cảm ơn con trỏ; cũng được thực hiện trên việc tìm kiếm nó. Tôi đề nghị bạn viết lên câu trả lời vì có thể sẽ có người khác gặp vấn đề.
Jonathan Leffler

Câu trả lời:


264

TL; DR

Đả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):

open /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 một câu trả lời nửa mạch lạc từ những bình luận khá rộng rãi

Lời nói đầu

Rất thường xuyên, xcode-select --installđã là giải pháp chính xác, nhưng dường như nó không giúp được gì cho lần này. Bạn đã thử chạy giao diện Xcode GUI chính chưa? Nó có thể cài đặt một số phần mềm bổ sung cho bạn và dọn dẹp. Tôi đã làm điều đó sau khi cài đặt Xcode 10.0, nhưng một tuần trở lên, rất lâu trước khi nâng cấp lên Mojave.

Tôi quan sát rằng nếu GCC của bạn được cài đặt /usr/local/bin, có lẽ bạn không sử dụng GCC từ Xcode; mà thường được cài đặt trong /usr/bin.

Tôi cũng đã cập nhật lên macOS 10.14 Mojave và Xcode 10.0. Tuy nhiên, cả hệ thống /usr/bin/gccvà hệ thống /usr/bin/clangđều hoạt động với tôi ( Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0cho cả hai.) Tôi gặp vấn đề với GCC 8.2.0 do tôi tự tạo, không tìm thấy tiêu đề /usr/include, song song với vấn đề của bạn là /usr/local/bin/gcckhông tìm thấy tiêu đề.

Tôi đã thực hiện một chút so sánh, và máy Mojave của tôi hoàn toàn không có /usr/include, nhưng vẫn /usr/bin/clangcó thể biên dịch OK. Một tiêu đề ( _stdio.h, với dấu gạch dưới hàng đầu) là trong cái cũ của tôi /usr/include; hiện tại nó bị thiếu (do đó, vấn đề của tôi với GCC 8.2.0). Tôi đã chạy xcode-select --installvà nó nói " xcode-select: note: install requested for command line developer tools" và sau đó chạy trình cài đặt GUI cho tôi xem giấy phép mà tôi đã đồng ý, và nó đã tải xuống và cài đặt các công cụ dòng lệnh - hoặc do đó, nó đã yêu cầu.

Sau đó tôi đã chạy Xcode GUI (không gian lệnh, Xcode, trả về) và nó nói rằng nó cần phải cài đặt thêm một số phần mềm, nhưng vẫn không có /usr/include. Nhưng tôi có thể biên dịch với /usr/bin/clang/usr/bin/gcc- và -vtùy chọn cho thấy 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 đó, Maxxx lưu ý :

Tôi đã tìm thấy một 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 /usrFinder, bạn sẽ không thấy thư mục có tên 'bao gồm' nữa, đó là lý do tại sao thiết bị đầu cuối phàn nàn về sự vắng mặt của các tệp tiêu đề được chứa bên trong thư mục 'bao gồm'. Trong Ghi chú phát hành Xcode 10.0 , nó cho biết có một gói:

/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg 

và bạn nên cài đặt gói đó để /usr/includecài đặt thư mục. Sau đó, bạn nên tốt để đi.

Khi vẫn thất bại, hãy đọc hướng dẫn hoặc, trong trường hợp này, ghi chú phát hành. Tôi không ngạc nhiên khi thấy Apple muốn quay lưng lại với di sản Unix của họ, nhưng tôi thất vọng. Nếu họ cẩn thận, họ có thể đuổi tôi đi. Cảm ơn bạn đã thông tin.

Sau khi cài đặt gói bằng cách sử dụng lệnh sau tại dòng lệnh, tôi /usr/includelại có một lần nữa và GCC 8.2.0 của tôi hoạt động trở lại.

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Đang tải xuống công cụ dòng lệnh

Như Vesal chỉ ra trong một nhận xét có giá trị , bạn cần tải xuống gói Công cụ dòng lệnh cho Xcode 10.1 trên Mojave 10.14 và bạn có thể làm như vậy từ:

Bạn cần đăng nhập bằng ID Apple để có thể tải xuống. Khi bạn đã tải xuống xong, hãy cài đặt gói Công cụ dòng lệnh. Sau đó cài đặt các tiêu đề như được mô tả trong phần 'Giải pháp làm việc'.

Điều này làm việc cho tôi trên Mojave 10.14.1. Tôi đã tải xuống cái này trước đây, nhưng tôi đã quên mất lúc tôi trả lời câu hỏi này.

Nâng cấp lên Mojave 10.14.4 và Xcode 10.2

Vào khoảng 2019-05-17, tôi đã cập nhật lên Mojave 10.14.4 và các công cụ dòng lệnh Xcode 10.2 cũng đượ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). Các openlệnh hiển thị ở trên cố định các tiêu đề thiếu. Vẫn có thể có những cuộc phiêu lưu đi kèm với việc nâng cấp Xcode chính lên 10.2 và sau đó cài đặt lại các công cụ dòng lệnh và gói tiêu đề.

Nâng cấp lên Xcode 10.3 (đối với Mojave 10.14.6)

Vào 2019-07-22, tôi nhận được thông báo qua App Store rằng bản nâng cấp lên Xcode 10.3 đã có sẵn và nó 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ó một trong những máy 10.14.5 của mình, và chạy nó và cài đặt các thành phần bổ sung như nó đề xuất và dường như nó /usr/includevẫn còn nguyên vẹn.

Sau đó cùng ngày, 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 Update Cập nhật phần mềm), cùng với gói IIrc tiện ích dòng lệnh (nó được tải xuống và cài đặt tự động). Việc cài đặt bản cập nhật o / s đã làm, một lần nữa, xóa sạch /usr/include, nhưng openlệnh ở đầu câu trả lời lại khôi phục nó. Ngày tôi có trong tệp cho openlệnh là 2019-07-15.

Nâng cấp lên XCode 11.0 (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 2019-09-21. Tôi đã được thông báo về 'các bản cập nhật khả dụng', và đã tải xuống và cài đặt nó vào các máy chạy macOS Mojave 10.14.6 thông qua ứng dụng App Store (tab cập nhật) mà không gặp sự cố và không cần phải sử dụng /usr/include. Ngay sau khi cài đặt (trước khi tự chạy ứng dụng), tôi đã thử biên dịch lại và được thông báo:

Đồng ý với giấy phép Xcode / iOS yêu cầu quyền quản trị viên, vui lòng chạy, sudo xcodebuild -license, sau đó thử lại lệnh này.

Chạy mà ( sudo xcodebuild -license) 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 thêm các thành phần cần thiết; vẫn không có vấn đề gì Vẫn còn phải xem điều gì sẽ xảy ra khi tôi nâng cấp lên chính Catalina - nhưng các máy macOS Mojave 10.14.6 của tôi đều ổn vào lúc này (2019-09-24).


4
ah cảm ơn vì đã viết bài này Nhiều đánh giá cao. Chúc mừng!
Maxxx

6
Giải quyết nó cho tôi !!! Cảm ơn rất nhiều vì đã dành thời gian để viết nó lên!
budekatude

8
GRUMP !!! Mọi thứ đã thay đổi một lần nữa với bản cập nhật 10.14.1 - hoặc, ít nhất, chúng dường như đã thay đổi một lần nữa. Đối với tôi, có vẻ như bản cập nhật o / s đã biến mất/usr/includevà gói được liệt kê trong câu trả lời ở trên không có mặt/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgxcode-select --installnói rằng các công cụ dòng lệnh hiện không có sẵn.
Jonathan Leffler

15
Tìm kiếm Apple. Họ không thể để những thứ hoạt động được, họ phải di chuyển mọi thứ, thêm các bước và tạo ra khuấy.

7
Với hy vọng các công cụ tìm kiếm sẽ tìm thấy câu trả lời này, các hướng dẫn ở trên đã giải quyết được fatal error: bits/ctype_base.h: No such file or directory: #include <bits/ctype_base.h>khi biên dịch GCC 7.4.0 bằng libstdc ++ trên Mojave cho tôi
Adam Lindberg

30

Sau khi thử mọi câu trả lời tôi có thể tìm thấy ở đây và trực tuyến, tôi vẫn nhận được lỗi cho một số tiêu đề bị thiếu. Khi cố gắng biên dịch pyRFR, tôi đã gặp lỗi về việc stdexceptkhông được tìm thấy, dường như không được cài đặt /usr/includevới các tiêu đề khác. Tuy nhiên, tôi đã tìm thấy nơi nó đang ẩn trong Mojave và thêm phần này vào cuối ~/.bash_profiletệp của tôi :

export CPATH=/Library/Developer/CommandLineTools/usr/include/c++/v1

Làm xong việc đó, giờ tôi có thể biên dịch pyRFR và các chương trình C / C ++ khác. Theo echo | gcc -E -Wp,-v -, gcc đã tìm kiếm ở vị trí cũ cho các tiêu đề này (không có /c++/v1), nhưng không phải vị trí mới, vì vậy việc thêm nó vào CFLAGS đã sửa nó.


Không có gì làm việc, nhưng điều này đã làm. Cảm ơn rât nhiều!!
Felix

2
wickysickbrothnx
Davis Dulin

23

Khi bạn

  • cập nhật lên Mojave 10.14.6
  • của bạn /usr/includeđã bị xóa một lần nữa
  • gói được đề cập trong câu trả lời @ Jonathan-lefflers không còn tồn tại nữa The file /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg does not exist.
  • Xcode phàn nàn rằng các công cụ dòng lệnh đã được cài đặt xcode-select --install xcode-select: error: command line tools are already installed, use "Software Update" to install updates

Sau đó, điều giúp tôi khôi phục gói được đề cập, là xóa toàn bộ CommandLineToolsthư mục (sudo) rm -rf /Library/Developer/CommandLineToolsvà cài đặt lại xcode-select --install.


Thông minh! Sau các bước của bạn, macOS_SDK_headers_for_macOS_10.14.pkgcó sẵn và lệnh open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgđã làm những gì cần phải làm. Cảm ơn rất nhiều!!
Bruno Ambrozio

3
Đối với tôi, những điều sau đây đã hoạt động: export CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include
rbieber 22/11/19

Cảm ơn bạn! Tôi đã bị mắc kẹt nhưng điều này thực sự hiệu quả với tôi với Mojave 10.4.6 và XCode 11.3.1
Simeon G

Mỗi khi Apple phát hành bản cập nhật hệ thống, tôi phải khắc phục vấn đề này với Clion theo nhiều cách khác nhau.
igonejack

12

Vấn đề là Xcode, đặc biệt là Xcode 10.x, chưa cài đặt mọi thứ, vì vậy hãy đảm bảo các công cụ dòng lệnh được cài đặt, nhập mã này vào vỏ thiết bị đầu cuối:

chọn xcode - cài đặt

cũng khởi động Xcode và đảm bảo tất cả các cài đặt được yêu cầu đã được cài đặt (bạn sẽ được nhắc nếu không.) và vì Xcode 10 không cài đặt SDK Mac OS đầy đủ, hãy chạy trình cài đặt tại

/ L Library / Nhà phát triển / CommonLineTools /Packages / macOS_SDK_headftimefor_macOS_10.14.pkg

vì gói này không được cài đặt bởi Xcode 10.


1
Điều này đã cứu tôi. Cảm ơn rất nhiều!
Demven Weir

7

Tôi đã tìm thấy giải pháp và lời giải thích tuyệt vời tại bình luận GitHub này . Bí quyết:

make SDKROOT=`xcrun --show-sdk-path` MACOSX_DEPLOYMENT_TARGET=

Đã làm việc.


5

LƯU Ý: Phần sau đây có khả năng rất cao theo ngữ cảnh và giới hạn thời gian trước khi chuyển đổi / tính khả dụng chung của macos Catalina 10.15. Máy tính xách tay mới. Tôi đang viết ngày 1 tháng 10 năm 2019 này.

Những trường hợp cụ thể này, tôi tin rằng, những gì gây ra vấn đề xây dựng cho tôi. Họ có thể không áp dụng trong hầu hết các trường hợp khác.

Bối cảnh:

  • macos 10.14.6 Mojave, Xcode 11.0, ngay trước khi ra mắt macos Catalina 10.15 . Macbook Pro mới mua.

  • thất bại trên pip install psycopg2, đó là, về cơ bản, một gói Python nhận được biên soạn từ nguồn.

  • Tôi đã thực hiện một số điều chỉnh được đề xuất trong các câu trả lời được đưa ra ở đây.

Lỗi của tôi

pip install psycopg2
Collecting psycopg2
  Using cached https://files.pythonhosted.org/packages/5c/1c/6997288da181277a0c29bc39a5f9143ff20b8c99f2a7d059cfb55163e165/psycopg2-2.8.3.tar.gz
Installing collected packages: psycopg2
  Running setup.py install for psycopg2 ... error
    ERROR: Command errored out with exit status 1:
     command: xxxx/venv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/bk/_1cwm6dj3h1c0ptrhvr2v7dc0000gs/T/pip-install-z0qca56g/psycopg2/setup.py'"'"'; __file__='"'"'/private/var/folders/bk/_1cwm6dj3h1c0ptrhvr2v7dc0000gs/T/pip-install-z0qca56g/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/bk/_1cwm6dj3h1c0ptrhvr2v7dc0000gs/T/pip-record-ef126d8d/install-record.txt --single-version-externally-managed --compile --install-headers xxx/venv/include/site/python3.6/psycopg2


...
/usr/bin/clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -pipe -Os -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -DPSYCOPG_VERSION=2.8.3 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=90615 -DHAVE_LO64=1 -I/Users/jluc/kds2/py2/venv/include -I/opt/local/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -I. -I/opt/local/include/postgresql96 -I/opt/local/include/postgresql96/server -c psycopg/psycopgmodule.c -o build/temp.macosx-10.14-x86_64-3.6/psycopg/psycopgmodule.o

    clang: warning: no such sysroot directory: 
'/Applications/Xcode.app/Contents/Developer/Platforms
                              ❌👇the real error👇❌
/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk' [-Wmissing-sysroot]
    In file included from psycopg/psycopgmodule.c:27:
    In file included from ./psycopg/psycopg.h:34:
    /opt/local/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m/Python.h:25:10: fatal error: 'stdio.h' file not found
                             ❌👆 what I thought was the error 👆❌
    #include <stdio.h>
             ^~~~~~~~~
    1 error generated.

    It appears you are missing some prerequisite to build the package 

Những gì tôi đã làm cho đến nay, mà không sửa chữa bất cứ điều gì:

  • xcode-select --install
  • cài đặt xcode
  • open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Vẫn lỗi tương tự trên stdio.h.

tồn tại ở một số nơi:

(venv) jluc@bemyerp$ mdfind -name stdio.h
/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h
/usr/include/_stdio.h
/usr/include/secure/_stdio.h
/usr/include/stdio.h   👈 I believe this is the one that's usually missing.
                            but I have it.
/usr/include/sys/stdio.h
/usr/include/xlocale/_stdio.h

Vì vậy, hãy đến thư mục đầu tiên đó clanglà phàn nàn và xem:

(venv) jluc@gotchas$ cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
(venv) jluc@SDKs$ ls -l
total 0
drwxr-xr-x  8 root  wheel  256 Aug 29 23:47 MacOSX.sdk
drwxr-xr-x  4 root  wheel  128 Aug 29 23:47 DriverKit19.0.sdk
drwxr-xr-x  6 root  wheel  192 Sep 11 04:47 ..
lrwxr-xr-x  1 root  wheel   10 Oct  1 13:28 MacOSX10.15.sdk -> MacOSX.sdk  👈
drwxr-xr-x  5 root  wheel  160 Oct  1 13:34 .

Hah, chúng tôi có một liên kết tượng trưng cho MacOSX10.15.sdk , nhưng không có liên kết nào cho MacOSX10.14.sdk . Đây là clanglỗi đầu tiên của tôi một lần nữa:

clang: warning: no such sysroot directory: '/Applications/Xcode.app/.../Developer/SDKs/MacOSX10.14.sdk' [-Wmissing-sysroot]

Tôi đoán là Apple đã nổ súng trên cấu hình xcode của họ và đã nghĩ rằng họ đang ở trên Catalina. Vì là máy Mac mới, cấu hình cũ cho 10.14 không được sử dụng.

CỐ ĐỊNH:

Hãy để symlink 10.14 giống như 10.15:

ln -s MacOSX.sdk/ MacOSX10.14.sdk

btw, nếu tôi đi đến thư mục sdk đó, tôi tìm thấy:

...
./usr/include/sys/stdio.h
./usr/include/stdio.h
....

NGOÀI RA:

pip install psycopg2 làm.

Lưu ý: lệnh cài đặt pip thực tế không tham chiếu đến MacOSX10.14.sdk , xuất hiện ở điểm sau, có thể là do cơ chế cài đặt Python hướng nội phiên bản HĐH.


Bạn pipđang sử dụng cái gì Tôi nghĩ rằng đó có thể là vấn đề chính.
Franklin Yu

3

Hãy chắc chắn kiểm tra Tùy chọn Xcode -> Vị trí.

Công cụ dòng lệnh tôi đã chọn là cho phiên bản Xcode trước đó (8.2.1 thay vì 10.1)


2

Có vấn đề tương tự như OP

Vấn đề

mèo xin chào

#include <stdlib.h>
int main() { exit(0); }

kêu chào

/usr/local/include/stdint.h:2:10: error: #include nested too deeply
etc...

Đã sửa

Tôi đã cài đặt phiên bản XCode mới nhất, tuy nhiên, ghi chú phát hành cho biết tệp được đề cập trong bản sửa lỗi trước đó, từ Jonathan ở đây, không còn khả dụng.

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Chi tiết tại đây https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes , trong phần Tính năng mới .


Giải pháp hiệu quả với tôi ...

Sử dụng chi tiết trong nhận xét này, https://github.com/SOHU-Co/kafka-node/issues/881#issuecomment-394197724

Tôi thấy rằng brew doctorbáo cáo tôi đã không sử dụng bao gồm trong /usr/local/thư mục của tôi .

Vì vậy, để khắc phục, tôi đã sử dụng lệnh được cung cấp bởi người dùng HowCrazy , để tìm các phần chưa sử dụng bao gồm và di chuyển chúng vào một thư mục tạm thời.

Lặp đi lặp lại ở đây ...

mkdir /tmp/includes
brew doctor 2>&1 | grep "/usr/local/include" | awk '{$1=$1;print}' | xargs -I _ mv _ /tmp/includes

Sau khi chạy các tập lệnh, vấn đề bao gồm tập tin đã biến mất. nb: Tôi đã nhận xét về vấn đề này ở đây quá.


1

Tôi đã có vấn đề này và không có gì làm việc . Tôi chạy xcode-select --installvà cũng cài đặt /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg.

LÝ LỊCH

Vì tôi gặp sự cố với App Store trên máy tính xách tay mới, tôi buộc phải tải xuống trình cài đặt Xcode Beta từ trang web của Apple để cài đặt Xcode bên ngoài App Store . Vì vậy, tôi chỉ cài đặt Xcode Beta .

GIẢI PHÁP

Điều này, (tôi nghĩ), đã được thực hiện clangđể không tìm thấy SDKROOTthư mục /Applications/Xcode.app/...., bởi vì không có Betatrong đường dẫn, hoặc có thể Xcode Beta chỉ đơn giản là không cài đặt nó (tôi không biết). Để khắc phục sự cố, tôi đã phải xóa Xcode Beta và giải quyết sự cố App Store để cài đặt phiên bản phát hành.

tldr;

Nếu bạn có Xcode Beta , hãy thử dọn dẹp mọi thứ và cài đặt phiên bản phát hành trước khi thử các giải pháp đang hoạt động cho người khác.


1

Tôi đã thử gần như tất cả các giải pháp được đăng và không có gì hiệu quả với tôi. Tôi sử dụng Mojave OS (10.14.6) và những gì cuối cùng cũng hoạt động với tôi (sau khi gỡ bỏ và cài đặt lại Xcode và các tiêu đề CLT và SDK):

  1. Cài đặt Clang v8 từ https://cran.r-project.org/bin/macosx/tools/
  2. Sửa đổi các dòng sau từ tệp ~ / .R / Makevars
CC=/usr/local/opt/llvm/bin/clang -fopenmp
CXX=/usr/local/opt/llvm/bin/clang++

với

CC=/usr/local/clang8/bin/clang -fopenmp
CXX=/usr/local/clang8/bin/clang++

Bây giờ các gói R dựa trên trình biên dịch C cài đặt thành công


0

Như Jonathan Leffler đã chỉ ra ở trên, tệp macOS_SDK_headers.pkg không còn ở đó trong Xcode 10.1.

Những gì làm việc cho tôi là để làm brew upgradevà các bản cập nhật của gcc và / hoặc bất cứ điều gì homebrew đã làm đằng sau hậu trường đã giải quyết các vấn đề về đường dẫn.



0

Tôi gặp vấn đề tương tự với Golang (gỡ lỗi với Goland) sau khi di chuyển. Điều duy nhất (nực cười) đã giúp đổi tên thư mục sau:

sudo mv /usr/local/include /usr/local/old_include

Rõ ràng nó có liên quan đến các tập tin cũ mà homebrew đã cài đặt và bây giờ bị hỏng.


-1

@JL Peyret nói đúng!

nếu bạn macos 10.14.6 Mojave, Xcode 11.0+

sau đó

cd /Appluggest/Xcode.app/Contents/Developer/Plevelops/MacOSX.pl platform / Developer / DDKs

sudo ln -s MacOSX.sdk / MacOSX10.14.sdk


Đây không phải là một bình luận?
Franklin Yu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.