2011-03-22 46 views
1

我在項目中有錯誤,但我知道是問題所在。這是編譯後的錯誤。xcode sqlite3 libsqlite.dylib

LD警告:

在 /install/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib/libsqlite3.dylib, 文件不是必需的體系結構

LD警告:

在 /install/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSi mulator3.0.sdk/usr/lib/libsqlite3.0.dylib, 文件不是必需的體系結構未定義 符號:「_ sqlite3_open」,引用自: - LiteSqlViewController.o中的[LiteSqlViewController openDB]「_sqlite3_close」 : - [LiteSqlViewController openDB]在LiteSqlViewController.o

LD:

符號(一個或多個)未找到collect2:LD返回1個退出狀態 _sqlite3_open」,從參考: - [LiteSqlViewController openDB]在LiteSqlViewController.o「_sqlite3_close」中,引用爲 來源: - [LiteSqlViewController openDB]在LiteSqlViewController.o

LD:

符號(S)未找到collect2:LD返回1個退出狀態建立失效 (2個錯誤)

我使用OSX 10.5.8的Xcode 3.1.2 iPhone模擬器2.2.1建築PPC

命令的結果:

文件/usr/lib/libsqlite3.dylib:/usr/lib/libsqlite3.dylib:Mach-O的 通用二進制用4個架構/usr/lib/libsqlite3.dylib(對於 架構ppc7400):馬赫 - 曾ø動態鏈接的共享庫的ppc /usr/lib/libsqlite3.dylib(對於架構PPC64):Mach-O的64位 動態鏈接的共享庫PPC64 /usr/lib/libsqlite3.dylib(對於 架構I386):馬赫 - 曾ø動態鏈接的共享庫的i386 /usr/lib/libsqlite3.dylib(對於架構x86_64的):Mach-O的64位 動態鏈接的共享庫x86_64的。

回答

8

在PPC的Mac電腦上使用iPhone模擬器似乎並不太簡單。發出命令file並獲得第一個錯誤中的路徑(緊接第一個ld警告:)。檢查出this related question,也許這些步驟有幫助。


老答案:

你在你的項目鏈接libsqlite3.dylib

在Xcode 4中,可以按照屏幕截圖所示完成:按加號並添加libsqlite3.dylib。之後,您可以將庫拖動到「鏈接的框架」文件夾中。 (該屏幕截圖示出了Mac OS X應用,它是iOS應用程序是相同的。)

Xcode 4 Screenshot

+0

是的我添加了這個框架libsqlite3.dylib和#import「sqlite3.h」我只是在我的主題標題中出錯。我使用Osx 10.5.8,xcode 3.1.2和iphone模擬器2.2.1。非常感謝您的回答 – pauljean 2011-03-22 15:22:05

+0

您的錯誤表明錯誤的libsqlite體系結構(!)已包含在項目中。如果你刪除並重新添加它,這是否解決了這個問題?當出現錯誤時,什麼是構建設置,您正在構建哪種架構?將此信息添加到問題中,也許有人可以提供幫助。 – Pascal 2011-03-22 21:36:44

+0

pascal非常感謝您的幫助。我喜歡你說的但它不會運行。我的iPhone模擬器是2.2.1體系結構ppc。 – pauljean 2011-03-23 08:40:17

1

的Xcode 4不建立PPC架構(也沒有任何OS之前10.6工作)。

您需要確保您的程序和libsqlite3.dylib庫是爲相同的體系結構構建的。我懷疑這個庫是爲x86編譯的。

正如其他人所說的那樣,使用「file」命令來確定構建文件的體系結構。

+0

我使用Osx10.5.8 xcode 3.1.2 iphone模擬器2.2.1架構PPC,非常感謝您的回答,我更新了話題。 – pauljean 2011-03-25 15:36:45