2012-02-29 422 views
0

我正在使用Stephen Kochan的書學習Objective-C和XCode。對於其中一項任務,我需要從命令行實現AddressBook查找功能。我使用了以前項目中的兩個類,添加了這些文件並且沒有複製。所有建立在XCode的很好,但是當我在命令行發出以下命令:clang錯誤:連接器命令失敗,XCode 4.2命令行應用程序

clang -fobjc-arc -framework Foundation main.m -o ch19

我得到的錯誤:

 
Undefined symbols for architecture x86_64: 
    "_OBJC_CLASS_$_AddresBook", referenced from: 
     objc-class-ref in cc-bx2cgt.o 
    "_OBJC_CLASS_$_AddressCard", referenced from: 
     objc-class-ref in cc-bx2cgt.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

在AddresBook沒有錯字,我的類名有一個「的」。我嘗試從我的項目中刪除這些文件(AddresBook.h和.m以及AddressCard.h和.m),並在不復制的情況下添加它們。在XCode中構建和運行應用程序工作得很好。

如何「清除」引用並再次添加它們以便我可以從命令行編譯它?

謝謝。

回答

2

您需要添加那些其他文件對象代碼。

clang -fobjc-arc -framework Foundation main.m AddressBook.m -o ch19或將它們編譯爲目標文件然後進行鏈接。

如果您想在命令行上執行此操作,您還應該使用xcodebuild。

+0

我添加了文件,但它仍然無法正常工作。有沒有辦法告訴編譯器完全忘記這些文件,並使用其他的(它們是相同的,代碼方式)? – Eugene 2012-02-29 20:34:35

+0

您是否使用命令行中的xcodebuild? – 2012-02-29 20:54:11

+0

我現在,+1的建議,它正在工作。如果我沒有得到任何其他解決方案來解決「叮噹聲」構建過程,我會接受您的答案。非常感謝! – Eugene 2012-02-29 21:14:25

相關問題