我被這個莫名其妙一個.... SQLite是一個獨立的項目和工作區的一部分。當構建目標,LLVM抱怨:的Xcode(LLVM)和SQLite:錯誤:類型不完全定義「結構B樹」
<path>/sqlite3.c:44924:24: Incomplete definition of type 'struct Btree'
這是在線路44924(14以下44924等地)。這裏還有我所看到的:
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
)。同樣的問題。
我想我的問題是,怎麼能說是不完整?有任何想法嗎?
嘗試查看預處理源;預處理器可以對源代碼做出奇怪的事情。另外,如果您詢問編譯器診斷,請包含完整的診斷輸出。 – servn
謝謝@servn。我試圖清理一個拒絕,我認爲它與http://stackoverflow.com/questions/13327744/xcode-4-subproject-does-not-honor-inherited有關。我會很快得到輸出。 – jww
你的'sqlite3.c'版本中的第44924行是什麼? –