Open shinsuke-ota opened 1 year ago
macos 13.2.1 (M1) でコンパイルしようとしたら初っ端からコケた。一瞬で解決するかもしれないし、解決しないかもしれないし、ひとまずやってみます。(dictionary つくる clangint のところのシステムヘッダ無視オプションかな。)
[ 0%] Generating G__catcore.cxx, libcatcore_rdict.pcm, libcatcore.rootmap In file included from input_line_1:1: In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/new:93: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstdlib:135:9: error: no member named 'at_quick_exit' in the global namespace using ::at_quick_exit _LIBCPP_USING_IF_EXISTS; ~~^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstdlib:136:9: error: no member named 'quick_exit' in the global namespace using ::quick_exit _LIBCPP_USING_IF_EXISTS; ~~^
以下はゆるい fix とお願いです。
上記のエラーは、SDK のバージョンの違いのせいで引き起こされていると考えられる。
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/cstdlib
の中身を見てみると以下のような違いがあり、13.3 において正しいチェックがなされていないのではないかと推測される。
#if !defined(_LIBCPP_CXX03_LANG) && defined(_LIBCPP_HAS_QUICK_EXIT)
using ::at_quick_exit _LIBCPP_USING_IF_EXISTS;
using ::quick_exit _LIBCPP_USING_IF_EXISTS;
#endif
#if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_ALIGNED_ALLOC)
using ::aligned_alloc _LIBCPP_USING_IF_EXISTS;
#endif
#if !defined(_LIBCPP_CXX03_LANG)
using ::at_quick_exit _LIBCPP_USING_IF_EXISTS;
using ::quick_exit _LIBCPP_USING_IF_EXISTS;
#endif
#if _LIBCPP_STD_VER > 14
using ::aligned_alloc _LIBCPP_USING_IF_EXISTS;
#endif
https://youtrack.jetbrains.com/issue/KT-57848 でも同じ指摘がされている。
Xcode と SDK の対応はこちらで確認できる
artemis-cat-src, artemis-share を 統合し、かつ cmake 対応する