|
KDS 3.0.0 (Eclipse), make *** *.elf Error 1 |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 23)
|
Feb 29 2016, 15:12
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(mdmitry @ Feb 29 2016, 17:58)  Так и смотрите что передается в качестве командной строки с опциями. Соберите проект сначала просто из командной строки. Для отладки ключ -n у make очень полезен. Библиотеки подключаются к gcc определенным образом при сборке. Почитайте руководство. Спасибо. Попробую. Цитата(mdmitry @ Feb 29 2016, 17:58)  Так и смотрите что передается в качестве командной строки с опциями. Соберите проект сначала просто из командной строки. Для отладки ключ -n у make очень полезен. Библиотеки подключаются к gcc определенным образом при сборке. Почитайте руководство. Ругается на makefile.... USER@USER-PC /cygdrive/d/KDS/MB_server/build $ make -n MAKE Version 5.2 Copyright © 1987, 2000 Borland Error makefile 37: Command syntax error Error makefile 46: Command syntax error Error makefile 83: Command syntax error *** 3 errors during make ***Мэйке вроде бы годный...
|
|
|
|
|
Feb 29 2016, 15:37
|

Начинающий профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648

|
Экзотика!!! У Вас часом Borland не стоит? В комплекте Borland шёл make, НО его синтаксис НЕ СОВМЕСТИМ с синтаксисом makefile gnu make! Версию лучше брать не ранее GNU Make 3.81. Цитата make --version GNU Make 3.81 Copyright © 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Вам надо запускать именно gnu make, как - решать Вам. Убрать Borland, поменять переменные окружения, ручной запуск и другое. С KDS 3.0.0 не имел дел. Посмотрите что идет в комплекте со средой, куда ставиться, есть ли собственно make в поставке. Посмотрите, с каким окружением запускается среда.
Сообщение отредактировал IgorKossak - Feb 29 2016, 18:14
Причина редактирования: бездумное цитирование
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
|
|
|
|
|
Feb 29 2016, 15:58
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
согласен полностью...но только в моем (очень тяжелом) случае используется внешний makefile
Сообщение отредактировал IgorKossak - Feb 29 2016, 18:12
Причина редактирования: бездумное цитирование
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 29 2016, 16:20
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(AlexandrY @ Feb 29 2016, 19:09)  Ну тогда и компилятор выбирайте "внешний". Зачем использовать KDS? оооххх...... просто проект не мой.... разработчика который это писал, след простыл... вот собираю по крупицам... в makefile'e есть ссылка на common.mak в котром упоминается cygwin... # Cygwin path CYGWINDIR = c:\cygwin64\bin
# Cygwin utilities CYGWIN_DIR = $(call remove_slashes,$(CYGWINDIR)) RM = $(CYGWIN_DIR)/rm.exe MKDIR = $(CYGWIN_DIR)/mkdir.exe CAT = $(CYGWIN_DIR)/cat.exe ECHO = $(CYGWIN_DIR)/echo.exe COPY = $(CYGWIN_DIR)/cp.exe TOUCH = $(CYGWIN_DIR)/touch.exe CHMOD = $(CYGWIN_DIR)/chmod.exe[/color]
Сообщение отредактировал asm_lock - Feb 29 2016, 16:21
|
|
|
|
|
Mar 1 2016, 05:47
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(AlexandrY @ Feb 29 2016, 21:35)  В KDS свой компилятор, ему не нужен cygwin, соответственно и опции другие и библиотеки. Боюсь KDS тут ничем не поможет, он в диалогах заточен под свои опции. Компилятор то свой...только вот для чего использовался Cygwin ???
|
|
|
|
|
Mar 1 2016, 06:44
|

Местный
  
Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007

|
cygwin - тяжеловес, как правило для сборки проектов из-под винды достаточно юзать minGW. Связано с тем, что исторически подавляющее большинство makefile писалось под NIX системы, всё многообразие вызываемых базовых функций оттуда же (которые вы как раз процитировали). Если у вас человек, от которого досталось наследство, увлекался сборкой всего и вся из исходников (из-под винды!!!), ему для этого нужен был cigwin.
Предполагаю, что в KDS уже при установке должен быть встроен набор базовых команд, посмотрите внимательно PATH в свойствах проекта - borland оттуда выпилите, проверьте, какие пути ещё прописаны. Поищите в папке с KDS где лежит mkdir.exe - эиу папку и надо в PATH добавлять. В таком случае вам ни cigwin, ни mingw не нужен будет.
|
|
|
|
|
Mar 1 2016, 07:11
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(Aaron @ Mar 1 2016, 09:44)  cygwin - тяжеловес, как правило для сборки проектов из-под винды достаточно юзать minGW. Связано с тем, что исторически подавляющее большинство makefile писалось под NIX системы, всё многообразие вызываемых базовых функций оттуда же (которые вы как раз процитировали). Если у вас человек, от которого досталось наследство, увлекался сборкой всего и вся из исходников (из-под винды!!!), ему для этого нужен был cigwin.
Предполагаю, что в KDS уже при установке должен быть встроен набор базовых команд, посмотрите внимательно PATH в свойствах проекта - borland оттуда выпилите, проверьте, какие пути ещё прописаны. Поищите в папке с KDS где лежит mkdir.exe - эиу папку и надо в PATH добавлять. В таком случае вам ни cigwin, ни mingw не нужен будет. Ну от машины бывшего программера остались лишь высохшие конденсаторы...поэтому о том как и что собиралось узнаю с трудом... За совет спасибо, пропишу в path пути...попробую собрать. В этом случае я так понимаю нужно будет использовать мэйкфайл которые генериться автоматически ?
|
|
|
|
|
Mar 1 2016, 07:19
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(asm_lock @ Mar 1 2016, 07:47)  Компилятор то свой...только вот для чего использовался Cygwin ??? Судя по тому, что диалог настроек у вас отличается от моего, то у вас либо не KDS 3.0 либо отдано управление какому-то левому Add-On-у Cygwin конечно здесь не нужен. Советовал бы снести и переставить KDS и сформировать проект заново из дерева исходников. Как правильно ставить KDS можете почитать здесь - https://geektimes.ru/post/263378/
|
|
|
|
|
Mar 1 2016, 07:41
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(AlexandrY @ Mar 1 2016, 10:19)  Судя по тому, что диалог настроек у вас отличается от моего, то у вас либо не KDS 3.0 либо отдано управление какому-то левому Add-On-у Cygwin конечно здесь не нужен. Советовал бы снести и переставить KDS и сформировать проект заново из дерева исходников. Как правильно ставить KDS можете почитать здесь - https://geektimes.ru/post/263378/устанавивал KDS 3.1.0 . Проект импортировал со старого винча...
|
|
|
|
|
Mar 1 2016, 08:03
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(AlexandrY @ Mar 1 2016, 10:51)  Так много файлов что нельзя заново проект сгенерировать? дахрена.....+ модбасовская либа... Я то свой тестовый проект сгенерил. Т.е. KDS работает. генерит и все грузит...
|
|
|
|
|
Mar 1 2016, 13:07
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(AlexandrY @ Mar 1 2016, 10:51)  Так много файлов что нельзя заново проект сгенерировать? Ну вот нарыл options' ы, они в отдельном файле common.mak.... Получается какая вермишель !!! запускается собственный мэйкфайл, из которого запускается *.mak....в котором прописаны настройки... Код ldopt = -mcpu=$(proc) -g \ -O$(optimize_level) \ -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 \ -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall \ -T $(call remove_slashes,$(LINKER_CMD_FILE)) \ -Xlinker \ --gc-sections \ -Wl,-Map,"$(BIN_OUTPUT_PATH)/$(boardname).map" \ -nanolibc Судя по всему проект делался в KDS 1.1.1 и там есть флаг линкера "-nanolib". В KDS 3.1.0 такого флага нету....
Сообщение отредактировал asm_lock - Mar 1 2016, 13:39
|
|
|
|
|
Mar 1 2016, 14:56
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(Aaron @ Mar 1 2016, 16:48)  вы не те куски цитируете, так в проблеме не разобраться. Пока что я криминала никакого не вижу. Ну подумаешь, 2-3 вложенных файла сборки вызываются... библиотеки линкуются флагом -l, попробуйте -lnanolib, -lnanolibc - и вообще, поищите в папке с KDS файлик libnanolib*.* - что найдётся?
если хотите, чтобы проблема быстрее решилась - выкладывайте файлы сборки к проекту целиком. И ещё раз - сейчас какая конкретно проблема? только nanolib? А если вместо неё слинковать стандартную libc, пускай даже она более тяжеловесная? При сборке ругается : arm-none-eabi-gcc: error: unrecognized command line option '-nanolibc' В KDS ничего из libnanolib*.* не нашел. CODE COMMON.MAK
# Cygwin path CYGWINDIR = c:\cygwin64\bin
# Cygwin utilities CYGWIN_DIR = $(call remove_slashes,$(CYGWINDIR)) RM = $(CYGWIN_DIR)/rm.exe MKDIR = $(CYGWIN_DIR)/mkdir.exe CAT = $(CYGWIN_DIR)/cat.exe ECHO = $(CYGWIN_DIR)/echo.exe COPY = $(CYGWIN_DIR)/cp.exe TOUCH = $(CYGWIN_DIR)/touch.exe CHMOD = $(CYGWIN_DIR)/chmod.exe
# Path to compiler directory ARMGCCDIR = C:\Freescale\KDS_3.0.0\toolchain
remove_slashes = $(subst \,/,$(1)) empty = space = $(empty) $(empty)
remove_spaces = $(subst $(space),\$(space),$(1))
obj_output_path = $(call remove_slashes,$(OBJ_OUTPUT_PATH)) bin_output_path = $(call remove_slashes,$(BIN_OUTPUT_PATH))
# set final target .PHONY: all all: MK_OUT_PATH $(BIN_OUTPUT_PATH)\$(boardname).elf PRINT_SIZE build: $(BIN_OUTPUT_PATH)\$(boardname).elf PRINT_SIZE
include $(SSC_ROOT)\ssc\mak\common_defs.mak include $(SSC_ROOT)\ssc\mak\common_rules.mak
OBJ_FILE_SUFFIX = o LIB_FILE_SUFFIX = lib
.SUFFIXES: # Delete the default suffixes .SUFFIXES: .c .h .$(OBJ_FILE_SUFFIX) .$(LIB_FILE_SUFFIX)
#\/---------- Microchip compiler ------------------\/ # compiler root directory ARM_GCC_DIR = $(call remove_spaces,$(call remove_slashes,$(ARMGCCDIR)))
# Compiler paths cbin = $(ARM_GCC_DIR)/bin
# Executables CC = $(cbin)/arm-none-eabi-gcc LI = $(cbin)/arm-none-eabi-gcc SIZE = $(cbin)/arm-none-eabi-size
# Compilers' options ccopt = -D$(compiler_name) -D$(projname) -D$(environment) \ $(debug) -D$(platform) -D$(cpu) -D$(boardname) \ -c -mcpu=$(proc) -g \ -O$(optimize_level) \ -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 \ -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall \ -MMD \ -std=c99
ifeq ($(release),) debug = -DDEBUG endif
ifeq ($(release),yes) debug = endif
ldopt = -mcpu=$(proc) -g \ -O$(optimize_level) \ -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 \ -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall \ -T $(call remove_slashes,$(LINKER_CMD_FILE)) \ -Xlinker \ --gc-sections \ -Wl,-Map,"$(BIN_OUTPUT_PATH)/$(boardname).map" \ -nanolibc
#/\---------- ARM GCC compiler ------------------/\
cpopt += $(addprefix -I,$(call remove_slashes,$(CC_INCLUDE_PATH)))
# C rule define generate_c_rule $(addprefix $(OBJ_OUTPUT_PATH)\,$(addsuffix .$(OBJ_FILE_SUFFIX),$(basename $(notdir $(1))))): $(1) @$(ECHO) Processing $$< $(CC) $$(subst \,\\,$$<) -o $$(subst \,\\,$$@) $(ccopt) $(cpopt) endef
# Asm rule define generate_asm_rule $(addprefix $(OBJ_OUTPUT_PATH)\,$(addsuffix .$(OBJ_FILE_SUFFIX),$(basename $(notdir $(1))))): $(1) @$(ECHO) Processing $(1) $(AS) $(asopt) -o $$(subst \,\\,$$@) $$(subst \,\\,$$<) endef
XX_FILES_TO_BUILD = $(CC_FILES_TO_BUILD) $(S_FILES_TO_BUILD) $(ASM_FILES_TO_BUILD) XX_OBJ_FILES = $(addprefix $(OBJ_OUTPUT_PATH)\,$(addsuffix .$(OBJ_FILE_SUFFIX),$(basename $(notdir $(XX_FILES_TO_BUILD))))) FILES_TO_LINK = $(XX_OBJ_FILES) $(LIBRARIES_LINK_ONLY) $(OBJECTS_LINK_ONLY)
LIST_OBJ_FILES = $(call remove_slashes,$(XX_OBJ_FILES)) LIST_LIB_FILES += $(call remove_slashes,$(SDK_ROOT))/lib/ksdk_platform_lib/kds/$(CHIP)/debug/ksdk_platform_lib.a
# Dependencies -include $(XX_OBJ_FILES:.o=.d)
# Generation of C and assempler rules $(foreach file,$(CC_FILES_TO_BUILD),$(eval $(call generate_c_rule,$(file)))) $(foreach file,$(ASM_FILES_TO_BUILD),$(eval $(call generate_asm_rule,$(file))))
# Rule for linking $(BIN_OUTPUT_PATH)\$(boardname).elf: $(FILES_TO_LINK) @$(ECHO) Linking $@ @$(MKDIR) -p $(bin_output_path) $(LI) $(ldopt) -o $(subst \,\\,$@) -Xlinker --start-group \ $(LIST_OBJ_FILES) $(LIST_LIB_FILES) \ -lm -Xlinker --end-group @$(ECHO) Done $@
PRINT_SIZE: $(BIN_OUTPUT_PATH)\$(boardname).elf @$(ECHO) Print size information $(SIZE) -B -d -t $(BIN_OUTPUT_PATH)/$(boardname).elf
clean: @$(ECHO) Clean... @$(RM) -fR $(OBJ_OUTPUT_PATH)
clean_keep_elf: @$(ECHO) Clean with keep elf ... @$(RM) -fR $(OBJ_OUTPUT_PATH) PS: Файлы что то подгружать не хочет При ключе -libc выдается вот такая вот бяка ! Код c:/freescale/kds_3.0.0/toolchain/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/bin/ld.exe: cannot find -libc collect2.exe: error: ld returned 1 exit status make: *** [bin_MB_server\FRDM_K64F120M.elf] Error 1 Вот сам common и makefile.
Сообщение отредактировал IgorKossak - Mar 1 2016, 19:01
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
|
|
|
|
|
Mar 22 2016, 11:38
|

Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 30-01-09
Из: СПб
Пользователь №: 44 178

|
Цитата(Aaron @ Mar 15 2016, 16:59)  asm_lock, Дак а в чём проблема-то была в итоге?  Прошу прощения, за то что сразу не написал. Проблема была в человеке который проект разрабатывал. Он решил не использовать стандартный инструментарий среды для настроек проекта а делал все майкфалами....причем их было несколько (если быть точным то 6). в мейкфайлах прописывалось все !!! пути к библиотекам, настройки компилятора, типа проца, платы и т.д. и т.п. компилилось все под cygwin. ну разобравшись во всем этом...я прописал там где нужно свои пути... и все срослось и даже задебажилось !!!! ЗЫ: самое ужасно что много кода написано скриптами...=((
Сообщение отредактировал asm_lock - Mar 22 2016, 11:38
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|