Нет необходимости создавать make-файл. Если вы запускаете MinGW из «Все программы -> GNUstep -> Shell», как указывает Pax выше, вы можете просто скомпилировать ваш файл .m.
Моя установка GNUstep находится в каталоге c: \ GNUstep \ GNUstep \ System. Если у вас другое, вам следует соответствующим образом изменить импорт Foundation.h.
Я сделал это:
- Создайте c: \ myprogs \ obj-c \ hello \ hello.m, который выглядит следующим образом:
// ---------- Hello.m
#import <../../GNUstep/System/Library/Headers/Foundation/Foundation.h>
int main(int argc, const char* argv[])
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello from Hello.m!");
[pool release];
return 0;
}
// ----------
Запуск оболочки MinGW. (См. Выше.)
В командной строке оболочки перейдите в каталог, в котором находится программный код. (Обратите внимание, что, поскольку это не Unix, необходимо указать букву диска Windows.):
cd / c / myprogs / obj-c / hello
Скомпилируйте программу:
gcc -o привет hello.m -I / c / GNUstep / GNUstep / Система / Библиотека / Заголовки \
-L / c / GNUstep / GNUstep / Система / Библиотека / Библиотеки -lobjc -lgnustep-base \
-fconstant-строка-класс = NSConstantString
(Обратите внимание, что символ "\" позволяет расширить команду до нескольких строк.)
При компиляции я получаю следующие информационные сообщения:
Info: resolving ___objc_class_name_NSAutoreleasePool by linking to __imp____objc_class_name_NSAutoreleasePool (auto-import)
Info: resolving ___objc_class_name_NSConstantString by linking to __imp____objc_class_name_NSConstantString (auto-import)
Запуск получившегося файла hello.exe дает мне следующее:
2009-06-03 14:44:59.483 hello[1240] Hello from Hello.m!