

C++Builder 10.3.3 Communityで、macOS
32bitをデプロイしようとしたら、上手くいきませんでした。64ビットでは動かないので、Big Sur /
Catalinaは候補から外して、Mojaveで試しました。XCodeのバージョンが関係あるらしいので、Command Line
Toolsといずれも10.1にしました。しかし、エラーと警告が多数出て、ブランクのプロジェクトでも実行できません。ご助力願えないでしょうか。

1．一つ目のエラーは、malloc/malloc.hにファイルがあるために、PAServerを介してファイルをインポートできなかったものと思われます。手動でmallocディレクトリをコピーしたらエラーが消えました。

[code]

    [bccosx エラー] stdlib.h(128): E2209 インクルード ファイル 'malloc/_malloc.h' を開けません
      詳細な解析情報
        Project14.cpp(3): #include c:\program files (x86)\embarcadero\studio\20.0\include\osx\fmx\fmx.h
        fmx.h(25): #include c:\program files (x86)\embarcadero\studio\20.0\include\osx\rtl\System.hpp
        System.hpp(19): #include c:\program files (x86)\embarcadero\studio\20.0\include\osx\rtl\sysmac.h
        sysmac.h(83): #include C:\Users\makot\OneDrive\Documents\Embarcadero\Studio\SDKs\commandlinetools.sdk/System/Library/Frameworks\CoreFoundation.framework/Headers/CoreFoundation.h
        CoreFoundation.h(18): #include c:\program files (x86)\embarcadero\studio\20.0\include\osx\crtl\assert.h
        assert.h(4): #include C:\Users\makot\OneDrive\Documents\Embarcadero\Studio\SDKs\commandlinetools.sdk\usr/include/assert.h
        assert.h(44): #include c:\program files (x86)\embarcadero\studio\20.0\include\osx\crtl\stdlib.h
        stdlib.h(24): #include C:\Users\makot\OneDrive\Documents\Embarcadero\Studio\SDKs\commandlinetools.sdk\usr/include/stdlib.h
    
[/code]

2．二つ目のエラーは64ビット環境を32ビットコンパイル環境にインポートしてしまったためではないかと、エンバカデロさまには言われました。

[code]

    [bccosx エラー] time.h(71): E2324 数値定数が大きすぎる
      詳細な解析情報
        Project14.cpp(3): #include c:\program files (x86)\embarcadero\studio\20.0\include\osx\fmx\fmx.h
        fmx.h(25): #include c:\program files (x86)\embarcadero\studio\20.0\include\osx\rtl\System.hpp
        System.hpp(19): #include c:\program files (x86)\embarcadero\studio\20.0\include\osx\rtl\sysmac.h
        sysmac.h(83): #include C:\Users\makot\OneDrive\Documents\Embarcadero\Studio\SDKs\commandlinetools.sdk/System/Library/Frameworks\CoreFoundation.framework/Headers/CoreFoundation.h
        CoreFoundation.h(60): #include C:\Users\makot\OneDrive\Documents\Embarcadero\Studio\SDKs\commandlinetools.sdk/System/Library/Frameworks\CoreFoundation.framework/Headers/CFPropertyList.h
        CFPropertyList.h(17): #include C:\Users\makot\OneDrive\Documents\Embarcadero\Studio\SDKs\commandlinetools.sdk/System/Library/Frameworks\CoreFoundation.framework/Headers/CFStream.h
        CFStream.h(20): #include C:\Users\makot\OneDrive\Documents\Embarcadero\Studio\SDKs\commandlinetools.sdk/usr/include\dispatch/dispatch.h
        dispatch.h(50): #include C:\Users\makot\OneDrive\Documents\Embarcadero\Studio\SDKs\commandlinetools.sdk/usr/include\dispatch/time.h
    
[/code]

ソースコードを見ると、

[code]

    #ifndef __DISPATCH_TIME__
    #define __DISPATCH_TIME__
    
    #ifndef __DISPATCH_INDIRECT__
    #error "Please #include <dispatch/dispatch.h> instead of this file directly."
    #include <dispatch/base.h> // for HeaderDoc
    #endif
    
    #include <stdint.h>
    
    // <rdar://problem/6368156&7563559>
    #if TARGET_OS_MAC
    #include <mach/clock_types.h>
    #endif
    
    DISPATCH_ASSUME_NONNULL_BEGIN
    
    #ifdef NSEC_PER_SEC
    #undef NSEC_PER_SEC
    #endif
    #ifdef USEC_PER_SEC
    #undef USEC_PER_SEC
    #endif
    #ifdef NSEC_PER_USEC
    #undef NSEC_PER_USEC
    #endif
    #ifdef NSEC_PER_MSEC
    #undef NSEC_PER_MSEC
    #endif
    #define NSEC_PER_SEC 1000000000ull
    #define NSEC_PER_MSEC 1000000ull
    #define USEC_PER_SEC 1000000ull
    #define NSEC_PER_USEC 1000ull
    
    __BEGIN_DECLS
    
    struct timespec;
    
    /*!
     * @typedef dispatch_time_t
     *
     * @abstract
     * A somewhat abstract representation of time; where zero means "now" and
     * DISPATCH_TIME_FOREVER means "infinity" and every value in between is an
     * opaque encoding.
     */
    typedef uint64_t dispatch_time_t;
    
    enum {
        DISPATCH_WALLTIME_NOW DISPATCH_ENUM_API_AVAILABLE
                (macos(10.14), ios(12.0), tvos(12.0), watchos(5.0)) = ~1ull,
    };
    
    #define DISPATCH_TIME_NOW (0ull)
    #define DISPATCH_TIME_FOREVER (~0ull)
    
[/code]

とあります。解決策は見つかりませんでしたが、似たような症例は2018年に中国語のサイトで報告されています。  
[https://translate.google.com/translate?sl=auto&tl=ja&u=http://snoopymemory.blogspot.com/2018/](https://translate.google.com/translate?sl=auto&tl=ja&u=http://snoopymemory.blogspot.com/2018/)

3．以降その他多数。（2．がまず解決出来ていないので、ソースコードは省略）

[code]

    [bccosx エラー] CGPath.h(391): E2040 宣言が正しく終了していない
      詳細な解析情報
    [bccosx エラー] CGPath.h(393): E2303 型名が必要
      詳細な解析情報
    [bccosx エラー] CGPDFArray.h(103): E2040 宣言が正しく終了していない
      詳細な解析情報
    [bccosx エラー] CGPDFArray.h(113): E2303 型名が必要
    [bccosx エラー] CGPDFDictionary.h(116): E2040 宣言が正しく終了していない
    [bccosx エラー] CGPDFDictionary.h(126): E2303 型名が必要
    [bccosx エラー] Carbon.h(34): E2209 インクルード ファイル 'CarbonSound/CarbonSound.h' を開けません
    [bccosx エラー] Carbon.h(49): E2209 インクルード ファイル 'NavigationServices/NavigationServices.h' を開けません
    [bccosx エラー] cstdlib(55): E2272 識別子が必要
    [bccosx エラー] cstdlib(56): E2272 識別子が必要
    [bccosx エラー] cstdlib(57): E2272 識別子が必要
    [bccosx エラー] cstdlib(59): E2272 識別子が必要
    [bccosx エラー] iosfwd(385): E2238 'char_traits<wchar_t>::int_type' の宣言が複数存在します
    [bccosx エラー] iosfwd(136): E2344 一つ前の 'char_traits<wchar_t>::int_type' の定義位置
    [bccosx エラー] iosfwd(391): E2238 'char_traits<wchar_t>::assign(wchar_t &,const wchar_t &)' の宣言が複数存在します
    [bccosx エラー] iosfwd(141): E2344 一つ前の 'char_traits<wchar_t>::assign(wchar_t &,const wchar_t &)' の定義位置
    [bccosx エラー] iosfwd(396): E2238 'char_traits<wchar_t>::eq(const wchar_t &,const wchar_t &)' の宣言が複数存在します
    [bccosx エラー] iosfwd(146): E2344 一つ前の 'char_traits<wchar_t>::eq(const wchar_t &,const wchar_t &)' の定義位置
    [bccosx エラー] iosfwd(401): E2238 'char_traits<wchar_t>::lt(const wchar_t &,const wchar_t &)' の宣言が複数存在します
    [bccosx エラー] iosfwd(151): E2344 一つ前の 'char_traits<wchar_t>::lt(const wchar_t &,const wchar_t &)' の定義位置
    [bccosx エラー] iosfwd(407): E2238 'char_traits<wchar_t>::compare(const wchar_t *,const wchar_t *,unsigned long)' の宣言が複数存在します
    [bccosx エラー] iosfwd(156): E2344 一つ前の 'char_traits<wchar_t>::compare(const wchar_t *,const wchar_t *,unsigned long)' の定義位置
    [bccosx エラー] iosfwd(414): E2238 'char_traits<wchar_t>::length(const wchar_t *)' の宣言が複数存在します
    [bccosx エラー] iosfwd(167): E2344 一つ前の 'char_traits<wchar_t>::length(const wchar_t *)' の定義位置
    [bccosx エラー] iosfwd(421): E2238 'char_traits<wchar_t>::copy(wchar_t *,const wchar_t *,unsigned long)' の宣言が複数存在します
    [bccosx エラー] iosfwd(176): E2344 一つ前の 'char_traits<wchar_t>::copy(wchar_t *,const wchar_t *,unsigned long)' の定義位置
    [bccosx エラー] iosfwd(429): E2238 'char_traits<wchar_t>::find(const wchar_t *,unsigned long,const wchar_t &)' の宣言が複数存在します
    [bccosx エラー] iosfwd(187): E2344 一つ前の 'char_traits<wchar_t>::find(const wchar_t *,unsigned long,const wchar_t &)' の定義位置
    [bccosx エラー] iosfwd(436): E2238 'char_traits<wchar_t>::move(wchar_t *,const wchar_t *,unsigned long)' の宣言が複数存在します
    [bccosx エラー] iosfwd(197): E2344 一つ前の 'char_traits<wchar_t>::move(wchar_t *,const wchar_t *,unsigned long)' の定義位置
    [bccosx エラー] iosfwd(443): E2238 'char_traits<wchar_t>::assign(wchar_t *,unsigned long,wchar_t)' の宣言が複数存在します
    [bccosx エラー] iosfwd(212): E2344 一つ前の 'char_traits<wchar_t>::assign(wchar_t *,unsigned long,wchar_t)' の定義位置
    [bccosx エラー] iosfwd(454): E2238 'char_traits<wchar_t>::to_int_type(const wchar_t &)' の宣言が複数存在します
    [bccosx エラー] iosfwd(227): E2344 一つ前の 'char_traits<wchar_t>::to_int_type(const wchar_t &)' の定義位置
    [bccosx エラー] iosfwd(465): E2238 'char_traits<wchar_t>::eof()' の宣言が複数存在します
    [bccosx エラー] iosfwd(238): E2344 一つ前の 'char_traits<wchar_t>::eof()' の定義位置
    [bccosx エラー] iosfwd(486): E2238 'char_traits<char>::assign(char &,const char &)' の宣言が複数存在します
    [bccosx エラー] iosfwd(141): E2344 一つ前の 'char_traits<char>::assign(char &,const char &)' の定義位置
    [bccosx エラー] iosfwd(491): E2238 'char_traits<char>::eq(const char &,const char &)' の宣言が複数存在します
    [bccosx エラー] iosfwd(146): E2344 一つ前の 'char_traits<char>::eq(const char &,const char &)' の定義位置
    [bccosx エラー] iosfwd(496): E2238 'char_traits<char>::lt(const char &,const char &)' の宣言が複数存在します
    [bccosx エラー] iosfwd(151): E2344 一つ前の 'char_traits<char>::lt(const char &,const char &)' の定義位置
    [bccosx エラー] iosfwd(502): E2238 'char_traits<char>::compare(const char *,const char *,unsigned long)' の宣言が複数存在します
    [bccosx エラー] iosfwd(156): E2344 一つ前の 'char_traits<char>::compare(const char *,const char *,unsigned long)' の定義位置
    [bccosx エラー] iosfwd(509): E2238 'char_traits<char>::length(const char *)' の宣言が複数存在します
    [bccosx エラー] iosfwd(167): E2344 一つ前の 'char_traits<char>::length(const char *)' の定義位置
    [bccosx エラー] iosfwd(516): E2238 'char_traits<char>::copy(char *,const char *,unsigned long)' の宣言が複数存在します
    [bccosx エラー] iosfwd(176): E2344 一つ前の 'char_traits<char>::copy(char *,const char *,unsigned long)' の定義位置
    [bccosx エラー] iosfwd(176): E2228 エラーあるいは警告が多すぎる
    
[/code]


CC BY-SA 4.0
2021-01-08T17:29:29.853
73161
2021-01-09T18:30:47.773
2021-01-09T18:30:47.773
43463
43463
question
c++ macos rad-studio
C++Builder 10.3.3で、macOS 32bit/Mojaveにデプロイしたい。