2015-08-12 2 views
0

Я пишу программу Objective C для регистрации, и я использую Ubuntu для ее компиляции.Ошибка при связывании класса в объекте-c

При компиляции, я получаю сообщение об ошибке, как

/tmp/ccJKC2MN.o:(.data+0x150): undefined reference to 
`__objc_class_name_AbcLogger' 

Я связаны все мои файлы заголовков в запуске каждого класса.

Моя программа:

Logger.h 
Logger.m 
AbcLogger.h 
AbcLogger.m 
example.m 

Для его компиляции я использую команду:

gcc -x objective-c -I/usr/include/GNUstep \ 
    -fconstant-string-class=NSConstantString \ 
    -D_NATIVE_OBJC_EXCEPTIONS    \ 
    Logger.h AbcLogger.h example.m -lgnustep-base -o human 

Можете ли вы помочь мне с этим вопросом. Если вам это нужно, запросите код.

+1

Разве вы не должны включать 'Logger.m' и' AbcLogger.m' в команду 'gcc'? Отправленный фрагмент ссылается на файлы .h. –

+0

Я тоже пытался добавить это, но все же он не работает. Я искал в google и пытался скомпилировать его с помощью другой команды, используя «gcc' gnustep-config -objc-flags' -Wl, - no-as-needed -lgnustep-base Logger.h Logger.m AbcLogger.h AbcLogger .m example.m -o new ", но он также возвращает ошибку как" gcc: ошибка: непризнанная опция командной строки "-fobjc-nonfragile-abi". Можете ли вы, ребята, помочь мне с этим. Что мне не хватает? – Abhijit

ответ

0

Мое предложение было бы сделать GNUmakefile

Я не могу сказать, если это 100% точно, потому что я не могу быть уверен в этой установке программы, но я хотел бы написать один, как это:

include $(GNUSTEP_MAKEFILES)/common.make 

TOOL_NAME=human 
human_OBJC_FILES=\ 
Logger.m\ 
AbcLogger.m\ 
example.m 

human_HEADERS=\ 
Logger.h\ 
AbcLogger.h 

include $(GNUSTEP_MAKEFILES)/tool.make 

вам потребуется GNUSTEP_MAKEFILES привести к пути GNUstep/Makefiles так, если он выплевывает ошибку, как «не удается найти common.make» убедитесь, что вы запустите

export GNUSTEP_MAKEFILES=/(Where ever you GNUstep folder is)/Makefiles 

просто введите

make 

УДАЧА!

Смежные вопросы