[英]How can I get TextMate to work with imported files?
我正在使用TextMate進行一些Objective-C練習。 當所有內容都在一個文件中時,它可以正常工作,但是一旦我要使用多個文件,就會出現錯誤。 例如,我有一個單獨的Rectangle.h
文件要導入:
#import "Rectangle.h"
int main (int argc, char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Rectangle *rectangle = [[Rectangle alloc] init];
[pool drain];
return 0;
}
運行產生此錯誤:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Rectangle", referenced from:
objc-class-ref in ccccStDD.o
ld: symbol(s) not found for architecture x86_64
我正在使用C包的“運行”命令。 使用Xcode包的“ Build&Run”命令會給我一個不同的錯誤。
如何使TextMate導入Rectangle.h
文件並運行?
這不是編譯器錯誤,而是鏈接器錯誤。 只要與主文件位於同一目錄中,導入就可以了。
我猜您也應該有一個Rectangle.m
文件。 您需要將兩個文件( Rectangle.m
和您的主文件)都編譯為目標文件(帶有-c
參數),然后將它們鏈接在一起以生成可執行文件。
或者只是將兩個文件一起編譯:
gcc -Wall -framework Foundation -o test test.m Rectangle.m
請注意,如果頭文件位於單獨的目錄中,則可以使用-i
或-I
參數將其指定為GCC。
編輯:
我剛剛提到了Xcode。 您正在使用Xcode還是TextMate?
如果使用Xcode進行編譯並出現錯誤,則您的Rectangle.m
文件很可能不是您的主要Xcode目標的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.