2012-03-27 48 views
0

嘗試運行我的應用程序時出現以下錯誤。源代碼中沒有錯誤。嘗試運行我的應用程序時出現以下錯誤。源代碼中沒有錯誤

     Undefined symbols: 
    "__Block_object_dispose", referenced from: 
     ___destroy_helper_block_2 in myprojectAppDelegate.o 
     ___destroy_helper_block_1 in myprojectAppDelegate.o 

    "__NSConcreteStackBlock", referenced from: 
     __NSConcreteStackBlock$non_lazy_ptr in myprojectAppDelegate.o 
    (maybe you meant: __NSConcreteStackBlock$non_lazy_ptr) 

    "__Block_object_assign", referenced from: 
     ___copy_helper_block_2 in myprojectAppDelegate.o 
     ___copy_helper_block_1 in myprojectAppDelegate.o 

ld: symbol(s) not found 
collect2: ld returned 1 exit status 

回答

0

問題出在Xcode版本上。該項目是在Xcode版本4.2中構建的,我試圖在Xcode3.2上運行它。後來我更新了Xcode,並將sdk更改爲最新開始工作的版本。

0

你錯過了一些東西。也許另一個源文件沒有包括在內?看看「destroy_helper_block_1」方法,看看那裏沒有的東西叫做什麼。這可能是某種情況是錯誤的,或者你正在調用一個你沒有包含的框架。你的鏈接器試圖把所有東西放在一起,但你的源代碼正在調用那些不存在的東西。

+0

我寧願懷疑丟失的框架而不是源文件(後者會導致編譯錯誤)。 – 2012-03-27 18:50:19

+0

也可能是缺少包含庫。編譯錯誤並不總是會發生,因爲Obj-C會讓你調用一個不存在的方法(至少,Xcode默認爲一個警告)。上述情況有時會在人們將新文件添加到源受控項目時發生,但只會將其添加到項目中,並忘記將其檢入源代碼控制。 – 2012-03-28 13:58:14

相關問題