私はこれに困惑しています.... SQLiteは別のプロジェクトであり、ワークスペースの一部です。ターゲットをビルドするとき、LLVM は不平を言っています:
<path>/sqlite3.c:44924:24: Incomplete definition of type 'struct Btree'
それは 44924 行目 (および 44924 に続く 14 か所) にあります。他に私が見ているものは次のとおりです。
7145: /* Forward declaration */
7146: typedef struct Btree Btree;
...
11378: struct Btree {
11379: sqlite3 *db; /* The database connection holding this btree */
11380: BtShared *pBt; /* Sharable content of this btree */
11381: u8 inTrans; /* TRANS_NONE, TRANS_READ or TRANS_WRITE */
11382: u8 sharable; /* True if we can share pBt with another db */
11383: u8 locked; /* True if db currently has pBt locked */
11384: int wantToLock; /* Number of nested calls to sqlite3BtreeEnter() */
11385: int nBackup; /* Number of backup operations reading this btree */
11386: Btree *pNext; /* List of other sharable Btrees from the same db */
11387: Btree *pPrev; /* Back pointer of the same list */
11388:#ifndef SQLITE_OMIT_SHARED_CACHE
11389: BtLock lock; /* Object used to lock page 1 */
11390:#endif
11391:};
...
44919: static void lockBtreeMutex(Btree *p){
44920: assert( p->locked==0 );
44921: assert( sqlite3_mutex_notheld(p->pBt->mutex) );
44922: assert( sqlite3_mutex_held(p->db->mutex) );
44923:
44924: sqlite3_mutex_enter(p->pBt->mutex);
44925: p->pBt->db = p->db;
44926: p->locked = 1;
44927: }
また、構造体の名前を 11378 に変更してみましたstruct Btree_S
(そして を変更しましたtypedef
)。同じ問題。
私の質問は、どうすれば不完全になるのでしょうか? 何か案は?