Здравствуйте!
А как настроить окружение для сборки приложений GNUstep?
(Собственно, сам GNUstep не очень интересует, просто хочется, чтобы без правки исходников можно было собирать примеры из заточенных под Mac OS X книжек по Objective C.)
По инструкции
отсюда создал файлы main.m и GNUmakefile.
main.m:
#import <Foundation/Foundation.h>
int main(void) {
NSLog (@"Executing");
return 0;
}
GNUmakefile:
include $(GNUSTEP_MAKEFILES)/common.make
TOOL_NAME = LogTest
LogTest_OBJC_FILES = source.m
include $(GNUSTEP_MAKEFILES)/tool.make
Первая проблема: чтобы заработал GNUmakefile, пришлось дать команду
source /usr/share/GNUstep/Makefiles/GNUstep.sh. Это же, наверное, неправильно, переменные окружения должны настраиваться при установке инструментов разработчика GNUstep?
Вторая проблема: программа собирается, но не запускается. Получаю ошибку:
GNUSTEP Error:
A call to NSProcessInfo +initializeWithArguments:... must be made
as the first ObjC statment in main. This function is used to
establish the argv and environment variables.
: Uncaught exception NSInternalInconsistencyException, reason:
GNUSTEP Error:
A call to NSProcessInfo +initializeWithArguments:... must be made
as the first ObjC statment in main. This function is used to
establish the argv and environment variables.
zsh: abort obj/LogTest
Гугление подсказало, что в GNUstep есть некий хак под названием fake-main, подставляющий при компиляции вызов NSProcessInfo +initializeWithArguments автоматически. Почему он не работает?