私はobjective-gitをプロジェクトに統合することに取り組んでいますが、ソースにヘッダーを含めると、いくつかの列挙型宣言で次のエラーが発生します。
objective-git/Classes/GTRepository.h:57:16: Non-integral type 'git_reset_t' is an invalid underlying type
問題のコードは次のとおりです。
typedef enum : git_reset_t {
GTRepositoryResetTypeSoft = GIT_RESET_SOFT,
GTRepositoryResetTypeMixed = GIT_RESET_MIXED,
GTRepositoryResetTypeHard = GIT_RESET_HARD
} GTRepositoryResetType;
(typedefをunsigned longに変更)に変更git_reset_t
するNSUInteger
と、コンパイルできるようになりましたが、もちろん、ライブラリファイルを変更する必要はありません。
Objective-gitはそれ自体のプロジェクトで問題なくコンパイルされ、そのプロジェクトと私のプロジェクトのコンパイラ設定に大きな違いは見つかりません。何が欠けている可能性がありますか?
これはXcode4.5であり、Applellvm4.1でコンパイルされます。
更新:私が見逃した手がかりは、エラーが.mmファイルでのみ発生し、.mファイルは問題がなかったため、基になる列挙型がC ++で機能しないことでした(C ++ 11を有効にしても)。回避策として、そのファイルで使用する1つのobjective-gitクラスに偽の最小限の@interface宣言を配置したので、ヘッダーを含める必要はありませんが、よりクリーンな解決策を見つけたいと思います。