2010-06-10 17 views
0

我開發了一個使用sqlite3作爲數據庫的iphone應用程序。那時我的OS X版本是豹。因此,將添加的libsqlite3.0.dylib添加到框架並編譯時不會遇到任何問題,並且還可以在設備上運行它。編譯iPhone程序與libsqlite3庫

本週我在我的Mac上安裝了Snow Leopard。刪除舊的豹版本,並安裝新的雪豹系統。

但我的問題是現在我無法編譯該程序,因爲它會給sqlite3庫帶來錯誤。我添加sqlite3.0.dylib使用選擇目標,然後選擇文件。也嘗試添加從選擇它直接/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk/usr/lib

我得到兩個不同的錯誤,當我編譯器和到仿真

當編譯裝置, LD:警告:在/opt/local/lib/libsqlite3.0.dylib,文件不是所需要的架構*

當編譯爲模擬器, LD:警告:在/ opt/local/lib/libsqlite3.0.dylib文件是爲不支持的文件格式構建的,而不是被鏈接的體系結構(i386) ld:warning:in/Developer/Pl atforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk/usr/lib/libSystem.dylib,文件中缺少必需的體系結構i386 ld:in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3 .sdk/usr/lib目錄/ libobjc.A.dylib,在文件中缺少所需的體系結構i386的 命令/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2失敗,退出代碼1

我也嘗試添加sqlite3.dylib(,我認爲sqlite3.0.dylib鏈接到sqlite3.dylib。),但沒有運氣。

任何人都可以給我任何幫助。我真的想讓這個工作。如果您想了解更多詳情,請讓我來。

謝謝 Waruna

+0

您使用的是libsqlite3.0.dylib還是libsqlite3.dylib? – Helen 2010-07-21 15:24:09

回答

0

可能是原來的請求者有點晚了。但對我而言,最好的辦法是去找到並從項目文件夾中刪除libsqlite.dylib文件,然後再次添加框架引用。

希望這有助於

0

您必須鏈接到這是在SDK路徑庫。當您選擇「添加框架...」時,您將看到默認路徑中可用的框架列表。不要離開這個列表,但從列表中選擇sqlite庫。

位於/ opt/local/lib /中的庫僅供計算機上運行的應用程序使用。不適用於iPhone應用程序。

+0

嘿,克勞斯我做到了,但仍然給了我同樣的錯誤,爲什麼厭倦了從默認路徑導航並嘗試其他方法。你有什麼想法,爲什麼。這在Leopard中非常完美。 – Waruna 2010-06-10 09:30:02

+0

「ld:warning:在/opt/local/lib/libsqlite3.0.dylib中,文件不是必需的體系結構」表明您實際上正在鏈接錯誤的庫。嘗試從項目中刪除庫並重新添加。 – 2010-06-10 11:12:17

+0

是的,我做到了,但沒有運氣:( – Waruna 2010-06-10 11:59:54

0

我不明白爲什麼加上與您的操作系統捆綁在一起的庫。爲什麼不把源添加到您的項目中?它會給你自由的更新SQLite的版本,並且不依賴於你的盒子上的SQLite。如果用戶正在運行舊版本的操作系統,會發生什麼情況?你會強迫他們升級他們的系統嗎?