Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: make утилитав виндовсе
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
sergey sva
Маке утилита, возник вопрос, она подходит для всех компиляторов или для каждого компилятора свой маке SDCC, VS? Буду благодарен если кто поможет ссылками на официальный сайт make.exe , или
описанием ошибок.
Сергей Борщ
Цитата(sergey sva @ Aug 7 2008, 16:45) *
Маке утилита, возник вопрос, она подходит для всех компиляторов или для каждого компилятора свой маке SDCC, VS?
Для разных компиляторов она разная. Большинство свободных компиляторов (если не все) пользуют GNU make (документация тут), ее порт под виндовс есть в составе MSYS/MinGW. Борланд и Микрософт используют свои make, несколько несовместимые с GNU make.
Цитата(sergey sva @ Aug 7 2008, 16:45) *
или описанием ошибок.
Так вы пишите, какие ошибки у вас возникают - попробуем помочь.
sergey sva
Цитата(Сергей Борщ @ Aug 7 2008, 17:53) *
Так вы пишите, какие ошибки у вас возникают - попробуем помочь.


вот маке файл, при компиляции ошибок нет, ошибка когда нужно очистить CLEAN.
Пишет что какойто файл не найден ошибка "(e2)" error 2
все файлы с расширениями *.sym *.lst *.mem *.map *.ihx *.lnk *.rst *.rel *.asm *.hex
есть в папке с проектом компилятор sdcc +eclips
Код
CC=sdcc
LINKFLAGS=--model-large --code-loc 0x0000 --code-size 0xFFFF --xram-loc 0x0000 --xram-size 0x0700
all: main.hex

    
main.rel: main.c
    $(CC) --model-large -c    main.c
    
main.hex: main.rel
    $(CC) $(LINKFLAGS) main.rel
    packihx <main.ihx >main.hex

    
    
        
clean:
    rm -f *.sym *.lst *.mem *.map *.ihx *.lnk *.rst *.rel *.asm *.hex
zltigo
Цитата(sergey sva @ Aug 7 2008, 16:18) *
вот маке файл...Пишет что какойто файл не найден...

clean:
rm -f *.sym *.lst *.mem *.map *.ihx *.lnk *.rst *.rel *.asm *.hex

Ну Вы хоть чуть-чуть подумать не пробовали, что такое 'rm'? Откуда в Windows 'rm' ?
Маке тут, как и следовало ожидать ни сном ни духом не виноватый.
sergeeff
Для удаления ненужных файлов лучше пользоваться конструкцией типа:

@if exist *.lst del *.lst
@if exist *.bak del *.bak

А вообще говоря, утилита make к компиляторам отношение имеет постольку поскольку. Правильнее ее считать средством автоматизации консольных приложений. Мы, например, используем маке от Borland и с его компилятором и с SDCC и CL.
sergey sva
Цитата(zltigo @ Aug 7 2008, 18:23) *
Ну Вы хоть чуть-чуть подумать не пробовали, что такое 'rm'? Откуда в Windows 'rm' ?
Маке тут, как и следовало ожидать ни сном ни духом не виноватый.


без rm выходит другая ошибка *** missing separator. Stop.
zltigo
Цитата(sergey sva @ Aug 7 2008, 16:45) *
без rm выходит...

...помолчу. Совет попробовать подумать - отзываю - начните со чтения любой документации на любой make.
Amper25
не издевайтесь над человеком.

rm - консольная команда linux, соответственно в винде получается ругань.
Kuzmi4
Стоит винавр.
Вот что выдало:
Цитата
Usage: rm [OPTION]... FILE...
Remove (unlink) the FILE(s).

-d, --directory unlink directory, even if non-empty (super-user only)
-f, --force ignore nonexistent files, never prompt
-i, --interactive prompt before any removal
-r, -R, --recursive remove the contents of directories recursively
-v, --verbose explain what is being done
--help display this help and exit
--version output version information and exit

To remove a file whose name starts with a `-', for example `-foo',
use one of these commands:
rm -- -foo

rm ./-foo

Note that if you use rm to remove a file, it is usually possible to recover
the contents of that file. If you want more assurance that the contents are
truly unrecoverable, consider using shred.

Report bugs to <bug-fileutils@gnu.org>.

Сегодня в мейке вот так заюзал:
Код
# rule for deleting dependent files (those which can be built by Make):
clean:
    rm -f main.hex main.lst main.obj main.cof main.list main.map main.eep.hex main.elf *.o

Никто и слова не сказал..
zltigo
Цитата(Kuzmi4 @ Aug 7 2008, 17:03) *
Стоит винавр.

Что там за мусор с собой помянутое чудо-юдо тянет мне не ведомо, но виндозная штатная это del или erase. Необходимости в посторонних портированных приблудах для удаления файлов нет нималейших.
Цитата(Amper25 @ Aug 7 2008, 17:02) *
не издевайтесь над человеком.

Какие издевательста? Ну должен-же человек хоть чуть-чуть представлять назначение и синтаксис make? Дабы не заниматся бездумным добавлением/удалением букв.
sergey sva
вот так работает, не кто не ругается. хотелось посмотреть как правильно удалять.
Цитата
proect = main
CC=sdcc
LINKFLAGS=--model-large --code-loc 0x0000 --code-size 0xFFFF --xram-loc 0x0000 --xram-size 0x0700
all: main.hex


main.rel: main.c
$(CC) $(LINKFLAGS) main.c

main.hex: main.rel
$(CC) $(LINKFLAGS) main.rel
packihx <main.ihx>main.hex

clean:
rm -f $(proect).hex $(proect).ihx $(proect).lnk $(proect).lst $(proect).map $(proect).mem $(proect).rel $(proect).rst $(proect).sym
zltigo
Цитата(sergey sva @ Aug 7 2008, 17:40) *
вот так работает, не кто не ругается.

Мрак sad.gif
"Не ругается" и "работает" есть разные вещи. Совсем разные. Для "не ругается", делать так
Код
# rm -f main.hex main.lst main.obj main.cof main.list main.map main.eep.hex main.elf *.o

а для "работает" так:
Код
del *.hex *.lst *.obj *.cof *.lst *.map *.eep *.hex *.elf  *.o

А буквы $(proect) можете на заборе писать.

Код
PROJECT = main
CC=sdcc
LINKFLAGS=--model-large --code-loc 0x0000 --code-size 0xFFFF --xram-loc 0x0000 --xram-size 0x0700
all: $(PROJECT).hex


$(PROJECT).rel: $(PROJECT).c
$(CC) $(LINKFLAGS) $(PROJECT).c

$(PROJECT).hex: $(PROJECT).rel
$(CC) $(LINKFLAGS) $(PROJECT).rel
packihx <$(PROJECT).ihx>$(PROJECT).hex

clean:
@del *.hex *.lst *.obj *.cof *.lst *.map *.eep *.hex *.elf  *.o
Kuzmi4
bb-offtopic.gif
на заборе лучше другие буквы писать biggrin.gif понятнее окружающим smile.gif
sergeeff
Это из разряда как заставить Windows выполнять команду rm. Только не понятно, чем стандартные команды не устраивают? Можно вообще свой язык придумать, если делать нечего. Задача то, вроде, состоит в программировании AVR?
cioma
cygwin
sergeeff
Ну тут умельцы на PS/3 запустили Linux, в нем эмулятор X86, а под ним Vist'у. Все работает, только на нажатие Пуск откликается через 12 минут.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.