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


64

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

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

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

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

ディレクトリ/Library/Developer/CommandLineTools/Packages/が存在しないため、ゲートの外では機能しません(したがって.pkg、開くファイルがまだありません)。

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


/usr/includeAppleの現在のXcodeでAppleの開発者ツールを使用する必要はありません。ヘッダーなどはにありXcode.app/Contents/Developer/Platforms/SomePlatform/SDKs/SomeSDKます。(複数のターゲットプラットフォームをサポートするために、異なるディレクトリにヘッダーを保持する必要があり/usr/includeます。ホストシステムとは異なるバージョンをターゲットとするときに、コンパイルが誤ってそこからファイルを使用しないようにするためのをxcode-select -p用意しないことをお勧めします。)へのパスの表示内容アクティブな開発者ディレクトリ?
Eric Postpischil

私はGCC 9.2.0(Mojave上)をビルドし/usr/includeましたが、システムヘッダーに使用できることを期待しています。私はまだそれを使用できるようにしたいのですが、AppleがレガシーUnixシステムとの互換性の最後の痕跡をようやく捨てたのではないかと思います(ある程度、執筆はMojaveを機能させるために必要なシステムの壁にありました) ')。その場合、おそらくシステムヘッダーの現在の場所を指定してGCCを再構築する必要があります— GCCの構成方法については手動でバッシングします。
ジョナサンレフラー、

1
@JonathanLeffler:catalinaへの更新後、RパッケージをインストールするときにソフトウェアパッケージRによって使用されるいくつかのファイル(stdlib.hなど)が見つからないという問題にも直面します。macOS_10.14で同じことを試しましたが、これはもう不可能です。GCC、c ++、または/ Library / Developer / CommandLineTools / usr / binにインストールされているものは何でも、Rにはわかりません。私に何ができる?
sebastiann、

1週間ほど前にCatalinaにアップグレードして以来、新しいMacキーボードでの悪名高い「ダブルタイピング」問題の被害者になりました。zshに切り替え、考えを変え、bashに戻すことにしましたbash5.0にアップグレードできます。bash5.0をコンパイルできないので、ここにいます。この問題に対する正解は、損失を削減してArchに切り替えることではないのでしょうか。
DryLabRebel

問題を回避する1つの方法は、Xcodeコンパイラーを使用することです—それらがインストールされている場合、システムヘッダーの場所を知っています。受け入れられた回答のCPATHテクニックも問題なく動作するようです。私はMacで「ダブルタイピング」(私が知っていること)に苦しんでいません。私はiPhoneでいろいろな種類の興味深いものを入力したと判断しましたが、これまでのところ、木に触れれば、私のMacBook Proは大丈夫です。
ジョナサンレフラー、

回答:


30

私にとってCPATHは、問題を解決するために次のパスを追加しました:

export CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

CPATHを追加してみました。ただし、これと同じエラーが発生します。単純なcout << "hello"を実行しようとしています。
Jon Pellant

1
私がこれを試したところ、現在Xcode 11.1であるものを使用してMojaveの下でビルドされたGCC 9.2.0を使用したカジュアルなテストで機能しました。ありがとうございます。
ジョナサンレフラー

これはGCC 9.2.0_1で私にとってはうまくいった
Sandeep

5
Xcode.appの代わりにコマンドラインツールを使用している場合は、export CPATH=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/
nalzok

奇妙な点の1つ —起動#include <stdlib.h>してからコンパイルに失敗したコードがいくつかありますIn file included from …/usr/include/sys/wait.h:110, —— from …/usr/include/stdlib.h:66, —— from bm.c:27: —— …/usr/include/sys/resource.h:443:9: error: no previous prototype for ‘getiopolicy_np’ [-Werror=missing-prototypes] —— 443 | int getiopolicy_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);。-でも、#include <ctype.h>以前に追加した場合#include <stdlib.h>、コンパイルは正常です。これが何を意味するか、そしてそれを自動的に処理する方法をまだ考えています。
ジョナサンレフラー、

48

先に進む前に、xcodeコマンドラインツールをインストールしてください。

xcode-select --install

実はできる!実際、すべてのCヘッダーはこのフォルダーにあります。

/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/

すべてのヘッダーファイルのシンボリックリンクをこのフォルダーに作成するだけです。

/usr/local/include/

それは私のために働いた!次のコマンドラインはすべての問題を処理します:

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

警告が表示されます。次のように、いくつかのヘッダーはすでに存在しています:

ln: /usr/local/include//tcl.h: File exists
ln: /usr/local/include//tclDecls.h: File exists
ln: /usr/local/include//tclPlatDecls.h: File exists
ln: /usr/local/include//tclTomMath.h: File exists
ln: /usr/local/include//tclTomMathDecls.h: File exists
ln: /usr/local/include//tk.h: File exists
ln: /usr/local/include//tkDecls.h: File exists
ln: /usr/local/include//tkPlatDecls.h: File exists

無視しても大丈夫です。それで全部です。


1
はい、可能だと思います—提案をありがとうございます。これは、実際の「システム衛生」の要件(たとえば、重複するヘッダー)とは一致しません。/usr/local/ディレクトリ階層は、システムソフトウェアではなくローカルソフトウェア用です。IMO、ヘッダーはあるべきで/usr/include、Appleはただ苦痛なだけです。
ジョナサンレフラー、

1
回避策があり、うまくいくかもしれませんが、試すことができます。リカバリモードでSIPを無効にしてから/、書き込みモードでマウントします。次に、/usr/includeフォルダに入力します。これは、10.15では、システムが読み取り専用モードでマウントされるためです。SIPを無効にしないと、システムボリュームをマウントできません。
Roy

@KomolNathRoy:ヒントをありがとう。これは私にはとてもうまくいきました。インストールに必要なものがすべてRで見つからないため、必要なパッケージをすべて統計ソフトウェアRにようやくインストールできました。
sebastiann

7
この解決策は、カタリナ10.15で私にとって
マシューバーバラ

2
SIPを無効にすることは、一時的な手段としても、私には受け入れられません。
ジョナサンレフラー、

22

TL; DR

Apple /usr/includeはdodoのやり方を踏襲したものと見なしているようです—絶滅しています—あるいは、Monty PythonのParrotのようなものかもしれません。

Appleが提供するGCC(実際には、バージョン情報が示すように、他の名前のClangです)またはClangを使用すると、問題を回避できます。両方とも/usr/bin/gcc/usr/bin/clang以下の4つのディレクトリレベルでシステムライブラリを検索します。

/Applications/Xcode.app/Contents/Developer/Platforms/…

独自のGCCまたは他のコンパイラを構築する場合、(おそらく)Xcodeアプリケーションディレクトリの下のシステムライブラリを見つけるように構成する必要があります。

探検

アップグレード直後に、XCode 11.0を実行しました。いくつかの追加コンポーネントをインストールしたかったので、インストールしました。ただし、それは、/usr/includeまたはの下のディレクトリを復元しませんでした/Library

前の質問の他のアドバイスの1つは、実行することでした。

xcode-select --install

その際、コマンドラインユーティリティがダウンロードされたと主張し/usr/bin/gcc/usr/bin/clangなどが存在することを確認しました。これは便利な手順です(ただし、以前に存在していたかどうかを明確に確認することはしませんでした)。

$ /usr/bin/gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.0 (clang-1100.0.33.8)
Target: x86_64-apple-darwin19.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
$

を使用して/usr/bin/gcc、プログラムをコンパイルできるようになりました。

$ make CC=/usr/bin/gcc al
co  RCS/al.c,v al.c
RCS/al.c,v  -->  al.c
revision 1.7
done
/usr/bin/gcc -I/Users/jleffler/inc -g -O3 -std=c11 -pedantic -Wall -Wextra -Werror -Wshadow -Wmissing-prototypes -Wpointer-arith  -Wold-style-definition -Wcast-qual -Wstrict-prototypes -DHAVE_MEMMEM -DHAVE_STRNDUP -DHAVE_STRNLEN  -DHAVE_GETDELIM   -o al al.c -L/Users/jleffler/lib/64  -ljl
$

ただし、/usr/includeまだ不足しています。下にディレクトリがあり/Libraryます:

$ ls /Library/Developer
CommandLineTools  PrivateFrameworks
$ ls /Library/Developer/CommandLineTools
Library SDKs    usr
$ ls /Library/Developer/CommandLineTools/SDKs
MacOSX.sdk      MacOSX10.14.sdk MacOSX10.15.sdk
$ ls /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/
Entitlements.plist SDKSettings.json   System
Library            SDKSettings.plist  usr
$

どちらSystemLibraryディレクトリには、非常に有望なものが含まれています。

他のすべてが失敗した場合は、マニュアルを読んでください

次のステップ—リリースノートを見つけて読んでください:

これに関連する情報はそこにはありません。したがって、可能性は(たった1、2時間の努力の後、AFAICS)Appleはもはやサポートし/usr/includeていません—まだ完全にロードされています/usr/lib(それでも/lib)。

GCCオプションを-v追加して別のコンパイルをチェックする時間(私が使用したmakefileで、設定UFLAGSはCコンパイラのコマンドラインにオプションを追加します):

$ make UFLAGS=-v CC=/usr/bin/gcc ww
co  RCS/ww.c,v ww.c
RCS/ww.c,v  -->  ww.c
revision 4.9
done
/usr/bin/gcc -I/Users/jleffler/inc -g -O3 -std=c11 -pedantic -Wall -Wextra -Werror -Wshadow -Wmissing-prototypes -Wpointer-arith  -Wold-style-definition -Wcast-qual -Wstrict-prototypes -DHAVE_MEMMEM -DHAVE_STRNDUP -DHAVE_STRNLEN  -DHAVE_GETDELIM -v  -o ww ww.c -L/Users/jleffler/lib/64  -ljl
Apple clang version 11.0.0 (clang-1100.0.33.8)
Target: x86_64-apple-darwin19.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.15.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -disable-free -disable-llvm-verifier -discard-value-names -main-file-name ww.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -fno-strict-return -masm-verbose -munwind-tables -target-sdk-version=10.15 -target-cpu penryn -dwarf-column-info -debug-info-kind=standalone -dwarf-version=4 -debugger-tuning=lldb -ggnu-pubnames -target-linker-version 512.4 -v -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -I /Users/jleffler/inc -D HAVE_MEMMEM -D HAVE_STRNDUP -D HAVE_STRNLEN -D HAVE_GETDELIM -I/usr/local/include -O3 -Wall -Wextra -Werror -Wshadow -Wmissing-prototypes -Wpointer-arith -Wold-style-definition -Wcast-qual -Wstrict-prototypes -Wno-framework-include-private-from-public -Wno-atimport-in-framework-header -Wno-extra-semi-stmt -Wno-quoted-include-in-framework-header -pedantic -std=c11 -fdebug-compilation-dir /Users/jleffler/src/cmd -ferror-limit 19 -fmessage-length 110 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fobjc-runtime=macosx-10.15.0 -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o /var/folders/77/zx9nk6dn7_dg4xd4stvt42v00000gn/T/ww-4cb85b.o -x c ww.c
clang -cc1 version 11.0.0 (clang-1100.0.33.8) default target x86_64-apple-darwin19.0.0
ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/local/include"
ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
 /Users/jleffler/inc
 /usr/local/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)
End of search list.
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -macosx_version_min 10.15.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -o ww -L/Users/jleffler/lib/64 /var/folders/77/zx9nk6dn7_dg4xd4stvt42v00000gn/T/ww-4cb85b.o -ljl -L/usr/local/lib -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/lib/darwin/libclang_rt.osx.a
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil" -o ww.dSYM ww
$

その猛烈なデータの重要な情報は次のとおりです。

-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk

これは事実上、コンパイルの「ルート」ディレクトリであるため、その下にusrandのサブディレクトリがあるはずですusr/include

$ ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
Entitlements.plist SDKSettings.json   System
Library            SDKSettings.plist  usr
$ ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr
bin     include lib     libexec share
$ ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
AppleTextureEncoder.h  dns_util.h             memory.h               simd
AssertMacros.h         dtrace.h               menu.h                 slapi-plugin.h
Availability.h         editline               miscfs                 spawn.h
AvailabilityInternal.h err.h                  module.modulemap       sqlite3.h
AvailabilityMacros.h   errno.h                monetary.h             sqlite3ext.h
AvailabilityVersions.h eti.h                  monitor.h              stab.h
lots more lines
dirent.h               mach-o                 security               xcselect.h
disktab.h              mach_debug             semaphore.h            xlocale
dispatch               machine                servers                xlocale.h
dlfcn.h                malloc                 setjmp.h               xpc
dns.h                  math.h                 sgtty.h                zconf.h
dns_sd.h               membership.h           signal.h               zlib.h
$

これは、マイル単位で完全に記憶できないディレクトリ名には、標準のCおよびPOSIXヘッダーに加えて、Apple固有の追加情報が含まれていることを示しています。

以前の/usr/local/ディレクトリは変更されていないようです。のusr/local/include下に存在しないという警告-isysrootdirは無害です(-vオプションがないと表示されません)。


申し訳ありませんが、あなたの提案に従ってください。カタリナの更新で同じエラーが発生します。vscodeを使用すると、C ++アプリをビルドwchar.hできず、見つからないエラーが発生しました。このフォルダを含めてみました-I / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX.sdk / usr / includeとiamは、「エラー:メンバーがありません。グローバル名前空間」の「isless」という名前
user3279954

--verboseタスクファイルで有効にし、vsコードが/usr/include/c++/v1/現在カタリナに存在しないフォルダーを調べていることに気付きました。上記のSDKのインクルードに加えて、次のフォルダーを追加しました。"-I / Library / Developer / CommandLineTools / usr / include / c ++ / v1 /"、
user3279954 '10

@trojanfoe —私はSCCSを好みますが、1999年には、Y2K以降にSCCSが正常に機能するかどうか(そして私が知っていたSCCSの優れたオープンソース実装がなかったため)がわからなかったため、しぶしぶRCSに切り替えました。
ジョナサンレフラー、

うわー:Dとにかく/usr/include行方不明になることの問題は何ですか?これは常にコンパイラのインクルードパスの一部として暗黙的に含まれていたため、ユーザーはそれについて知る必要がありませんでした(何かが宣言された場所を見つけようとしたときを除いて)。ClangはSDKパスをXcode.app使用して同じことを行うので、正味の効果は同じです。
trojanfoe

1
@trojanfoe:/usr/includeAWOLがなくなったときの1つの問題(私の主な問題)は、ソースから独自のGCCを構築した場合、システムヘッダーを見つけるためにコンパイルされた/usr/includeため、コンパイルが失敗することです。Clangだけでなく最新のGCCを使用したい。AppleのClangを使用できてうれしいですが、AppleのClangをGCCに見せかけて使用するのは不快です— GCCとは異なります。システムヘッダーを再配置してGCCを構築するためのレシピはまだ完成していません。(私--with-native-system-header-dir="${XCODE_HDR}"は答えの一部だと思いますが、それがすべての答えではありません。)
ジョナサン・レフラー

7

MakeXcodeコマンドラインツール(Xcode CLI)のヘッダーが配置されている場所を指すように、次の暗黙的な変数を設定します。

export CFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
export CCFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
export CXXFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
export CPPFLAGS+=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

この-isysrootオプションは、システムルートディレクトリから離れたルートファイルの場所を更新します/

したがって、これにより、共通/usr/*ファイルが新しい場所で確実に見つかるようになります。

つまり、のファイル/Library/Developer/CommandLineTools/SDKs/MacOSX.sdkが見つかりました。これらのファイルは次のとおりです。

Entitlements.plist 
Library
SDKSettings.json
SDKSettings.plist
System
usr

私のメイクファイル(および私が目にする他のほとんどのメイクファイル)では、CFLAGS1つのオプションよりもはるかに複雑です。-isysrootオプションは他の設定(他の多くの設定)に追加する必要があります。ここにはアイデアの核があります(-isysrootオプションと場所をに渡します/Library/Developer/…)が、プライムタイムの準備ができる前に、いくらか磨く必要があります。
Jonathan Leffler、

@JonathanLeffler export CFLAGS+=-isysroot ...代わりに使用すると、そのユースケースで機能します。これは私のために動作した唯一のソリューションです(Mojave(10.14)でCatalina(10.15)SDKを使用してい.pkgます。XCodeとコマンドラインツールが最新であっても、誰もが話しているファイルはありません)。
Norswap

@Norswap — CFLAGS=…との使用には大きな違いがありますCFLAGS+=…
ジョナサンレフラー

@JonathanLefflerは同意した。使用する答えを更新しました+=。@Norswapに感謝します。
コートレス

1
または、SDKROOT同じsdk値(/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk)に設定してもうまくいくことがわかりました。
Norswap

4

私はOSXでRのC ++コンパイラを使用した初心者ですが、OSが更新された後にC ++がヘッダーを見つけられないという同じ問題が発生しました(math.hがありません)。私はhttps://thecoatlessprofessor.com/programming/cpp/r-compiler-tools-for-rcpp-on-macos/の指示に従いました が、何も変わりませんでした。

最後に、Xcode CLIを再インストールした後、それは私のために働きました

xcode-select --install

そして、@ Coatlessが提案するようにフラグをVarに変更します。

export CFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
export CCFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
export CXXFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
export CPPFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

1

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


0

この質問でKomol Nath Royの回答を実行した/usr/local/include後、apue.hの依存関係がまだ欠けていました。

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


ヘッダーapue.hはW Richard Stevens、Stephen A Rago Advanced Programming in the Unix Env​​ironment、3rd Edn 2013からのものです。AFAIK、それはAppleによってシステムヘッダーとして提供されたことはありません。(/usr/includeまだMojaveを実行している私のマシンにはありません。)一度にインストールされた/usr/include場合、おそらくAppleから提供されたのではなく、手動で作成されたものです。そのため、/usr/local/include以前にインストールされている必要があります。
ジョナサンレフラー、

素朴な質問は申し訳ありませんが、今週はC ++を手に入れました。依存関係/ヘッダーはc ++で手動で管理されていますか?はいの場合、上記の依存関係/ヘッダーをすべて入れ/usr/includeますか?
マシューバーバラ

1
Q1:多かれ少なかれ。少し意味が異なりますが、使用しているマシンでヘッダーが標準でない場合は、CまたはC ++の依存関係とヘッダーについて心配する必要があります。次に質問が来ます—標準は何ですか?そして、与えることができる最良の答えは「依存する」であり、それは「プラットフォーム」(O / S、コンパイラー)を含む多くの要因に依存します。Q2は「いいえ、通常は何も入力しないでください/usr/include」の/usr/local/include代わりに使用します。一般的に、一人で立ち去って/usr/include、代わり/usr/libに素材を追加するのが最も安全/usr/localです。
ジョナサンレフラー、

0

解決策は思ったより簡単でした。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

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

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.