簡體   English   中英

如何使TextMate處理導入的文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM