/usr/includeロス
Mojaveからシステムヘッダ/usr/includeにインストールされなくなりました。システムヘッダを使うソースをコンパイルしようとすると,stdlib.hがないなどと文句が出て,コンパイルできないことがあります。
インストールする?
Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgからインストールする方法が紹介されています。これで一応解決できるのですが,別の方法があります。
システムヘッダのありか
実は/usr/includeにはありませんが,違う場所にインストールされています。これを-isysroot
で指定すればコンパイルが通ります。
ヘッダの場所はSDK(例 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk)の下です。
CMake
CMAKE_OSX_SYSROOTを指定します。
MacPorts
MacPortsでは${configure.sysroot}にSDKへのパスが入っています。
履歴
- 2019-10-07 13:23 gcc, clangのマニュアルへのリンクを追加