web-dev-qa-db-ja.com

Catalina 10.15にアップグレードした後、MacでCプログラムをコンパイルできません

以前の質問 Mojaveへのアップグレード後にMacでCプログラムをコンパイルできない があり、その回答で、問題のほとんどのバリエーションがカバーされています。

現在、2019年10月7日月曜日以降、macOS Catalina 10.15にアップグレードできます。もう一度、アップグレード中に、XCode 11.0が(Mojave 10.14.6から)カタリナにアップグレードする前にインストールされていたとしても、/usr/includeディレクトリがアップデートによって吹き飛ばされました。その結果、/usr/includeディレクトリが存在することを想定してビルドされたコンパイラは動作しなくなります。

Mojaveの問題の主な推奨手順—コマンドを使用:

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

ディレクトリ/Library/Developer/CommandLineTools/Packages/が存在しないため、ゲートから動作しません(したがって、開く[.pkgファイルがまだありません)。

ディレクトリ/usr/includeを作成してデータを追加するための良い(公式の)方法はありますか?

60

1)手動でリンクする2)brew install llvmを試しましたが、うまくいきませんでした。

最後に、これは私のために働きました: https://gitmemory.com/issue/pytorch/pytorch/31190/5651535

以下の環境変数を設定することにより:

export CC=clang
export CXX=clang++
export MACOSX_DEPLOYMENT_TARGET=10.9
0
Y Liu

私の場合、llvmgccもhomebrewを使用してインストールしたようです。それらを削除してmacOS clangに完全に依存すると、ヘッダーが見つかり、コンパイルが再び機能します。

0
frbl

解決策は思ったより簡単でした。 clang/llvmをインストールします。

brew install llvm

次に、自分でシンボリックリンクを作成する必要があります。

for f in /usr/local/Cellar/llvm/9.0.0_1/bin/clang*; do ln -s ${f} /usr/local/bin/"${f##*/}"; done

そして

ln -s /usr/local/Cellar/llvm/9.0.0_1/include/c++ /usr/local/include/c++

Llvmのバージョンに応じて、上記のコマンドを変更します。

これで、カスタムフラグを渡さずにC++プログラムをコンパイルできます。

clang++ hello.cpp
0
Salil

私にとっては、次のようにうまく機能します:

1. xcode-select --install

2. Sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/* /usr/local/include/

3. export SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
0
pfcstyle

この質問でKomol Nath Royの回答を実行した後、apue.hの依存関係が/usr/local/includeにまだありませんでした。

依存関係をgitから手動でダウンロードし、/usr/local/includeに配置しました

0
Matthew Barbara