реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Проблема с GCC, Вчера всё было нормально...
MrYuran
сообщение May 27 2011, 07:26
Сообщение #1


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата
Start linking file: Obj/902_430_135.o.
C:\mspgcc\bin\msp430-gcc ./Obj/902_430_135.o ./Obj/ads1241_902.o ./Obj/temperatu
re.o -mmcu=msp430x149 -Wl,--section-start -Wl,.seg_a=0x1080 -Wl,--gc-sections -W
l,-Map=902U.map,--cref -LC:\mspgcc"\bin\lib" -LC:\mspgcc"\msp430\lib" -LC:\mspgc
c"\msp430\include" -LC:\mspgcc"\msp430\include\msp430" -lc -lm -o 902U.elf
/usr/bin/sh: C:mspgccbinmsp430-gcc: command not found
make: *** [902U.elf] Error 127


???
Жирным выделил особо непонятный момент.
Навскидку никто тип грабель не подскажет?

Вот сборочный участок makefile:
Код
# Компиляция: создать объектные файлы из исходников Си.
$(OBJDIR)/%.o: %.c
    @echo Start compile file: $<
    @$(CC) -c $(CFLAGS) $< -o $@
    @echo Compile file: $< - OK.

# Linking.
$(NAME).elf : $(OBJ) makefile
    @echo Start linking file: $<.
    $(CC) $(OBJ) $(LDFLAGS) -o $@
    @echo Linking file: $< - OK.
#
#$(NAME).elf : $(CSRC)
#    @echo $^
#    @$(CC) -c $(CFLAGS) -combine -fwhole-program $^ $(LDFLAGS) -o $(NAME).o
#    $(CC) $(NAME).o $(LDFLAGS) -o $@

$(NAME).a43 : $(NAME).elf
    @$(OBJCOPY) -O ihex $< $@

# Main listing.
$(NAME).lst : $(NAME).elf
    @echo Start create listing file from: $<.
    $(OBJDUMP) -dStl $< > $@
    @echo Create listing file from: $< - OK.


Хотя сомневаюсь, что в нем дело. Точнее, уверен, что не в нем.

Есть предположение, что свежеустановленный цыгвин запускает свой make.exe вместо нужного. Только вот почему ж он такой кривой...
##
Не подтвердилось, с другим то же самое.
Цитата
>mingw32-make all
Start linking file: Obj/902_430_135.o.
C:\mspgcc3\bin\msp430-gcc ./Obj/902_430_135.o ./Obj/ads1241_902.o ./Obj/temperat
ure.o -mmcu=msp430x149 -Wl,--section-start -Wl,.seg_a=0x1080 -Wl,--gc-sections -
Wl,-Map=902U.map,--cref -LC:\mspgcc3"\bin\lib" -LC:\mspgcc3"\msp430\lib" -LC:\ms
pgcc3"\msp430\include" -LC:\mspgcc3"\msp430\include\msp430" -lc -lm -o 902U.elf
/usr/bin/sh: C:mspgcc3binmsp430-gcc: command not found
mingw32-make: *** [902U.elf] Error 127


##
Внезапное развитие событий.
Залочил цыгвин (переобозвал папку на cygwin_) - всё заработало.
Ну и каким образом он мешается?
И почему вчера (до перезагрузки) всё работало?

Насколько понимаю, он свой sh подставляет вместо системного шелла. Как - в упор не понимаю.

Да, так и есть.
Переобозвал sh.exe в sh_ - всё по-старому, нормально работает.

Каким образом sh включается вместо обычного shell - без понятия.

Сообщение отредактировал MrYuran - May 27 2011, 06:33


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 27 2011, 08:26
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Всё дело в обратных слешах:
Цитата
C:\mspgcc\bin\msp430-gcc

sh их не любит. Причём разные sh не любят в большей либо меньшей степени, но не любят все до единого.
make, если находит sh в пути, то вызывает его для выполнения команд. Вернее - может вызывать. А если не находит, то запускает команду сам.
Я раньше из-за этого всегда удалял sh из пути. А теперь проникся его (sh) вкусностями, и переделал все makefile под него. В частности, полностью исключил использование обратных слешей.
Было ещё несколько тонких моментов, но в конце-концов всё устаканилосьsm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 27 2011, 08:28
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(AHTOXA @ May 27 2011, 12:26) *
Всё дело в обратных слешах:

sh их не любит. Разные sh в большей либо меньшей степени, но все.

Это я все понимаю. Не понимаю другого: как sh перехватывает обработку команды из досовского шелла?


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 27 2011, 08:30
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Его make вызывает, при чём тут досовский шелл?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 27 2011, 08:33
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(AHTOXA @ May 27 2011, 12:30) *
Его make вызывает, при чём тут досовский шелл?

Так, секундочку... С чего бы вдруг?
Да и раньше, без цыгвина, sh нигде не было, а всё работало.
Что-то не то...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 27 2011, 08:36
Сообщение #6


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(MrYuran @ May 27 2011, 14:33) *
Так, секундочку... С чего бы вдруг?

Так он устроенsm.gif

Цитата(MrYuran @ May 27 2011, 14:33) *
Да и раньше, без цыгвина, sh нигде не было, а всё работало.


Ещё раз:
Если make находит sh, то может использовать его. Если не находит - обходится без.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 27 2011, 08:40
Сообщение #7


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Интересная штука GCC!
Неисчерпаемая, как атом sm.gif

Перевести всё на sh наверно мысль дельная, будет универсальность и кроссплатформенность.
Надо подумать.

Ну а навскидку, какие там ещё подводные грабли, чтобы три раза не спрашивать?


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 27 2011, 09:08
Сообщение #8


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Это не GCC, это make, он как бы сбокуsm.gif

Грабли - сейчас уже и не вспомню. Помню, что на
Код
echo *** compiling...

sh реагировал весьма своеобразно (раскрывал "shell patterns"). Заменил "***" на "---".
И что-то с rar-ом никак не уживался, этот sh. Сначала я вышел из положения монструозной конструкцией
Код
@cmd /WAIT /C 'start $(RAR) a -r -agyy-mm-dd,hh-nn-ss $(BAKDIR)/$(TARGET)_.rar $(RARS)'

, а потом и вовсе перешёл на 7z.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
dxp
сообщение May 28 2011, 05:31
Сообщение #9


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(AHTOXA @ May 27 2011, 15:36) *
Ещё раз:
Если make находит sh, то может использовать его. Если не находит - обходится без.

Именно поэтому - непредсказуемости поведения - всегда исключал это звено из сборки. Только make и штатное окружение консоли венды. Возможно, под линухом с ним всё шоколадно, но в венде смысла в этих сторонних шеллах мало.

Цитата(MrYuran @ May 27 2011, 15:40) *
Перевести всё на sh наверно мысль дельная, будет универсальность и кроссплатформенность.
Надо подумать.

Надо вообще этот make фтопку. Есть более приятные инструменты для этих целей. Я использую уже года 4 или 5 SCons. Питоновый скрипт, по сути. Там можно делать всё - от написания билдеров (функций сборки) до всяких вспомогательных действий типа обработки строк, работы с файлами - словом всё, что доступно полноценному языку программирования. И особенно приятно, что открыв скрипт сборки через полгода без всяких проблем читаешь и правишь код. На make же постоянно приходилось лезть в доку, чтобы вспомнить, что обозначают закорючки типа $< или $@. Да остальной синтаксис через подстановки $(...) не добавляет радости. Птичий язык. Привычка, конечно, многое решает, но за достаточно много лет использования make никогда не испытывал удовольствия от работы с ним. Приобретённый опыт, конечно, помогает по жизни (вот щас c Qt ковыряюсь, пока в рамках его оболочки и организации проектов, там на make основано), но очень рад, что в основном этот этап уже позади. sm.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 30 2011, 03:57
Сообщение #10


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(dxp @ May 28 2011, 11:31) *
Именно поэтому - непредсказуемости поведения - всегда исключал это звено из сборки.

Я тоже исключал. А теперь вроде как изучил особенности, и стало всё предсказуемымsm.gif Всё-таки sh изрядно расширяет функциональность make.
Цитата
Надо вообще этот make фтопку. Есть более приятные инструменты для этих целей. Я использую уже года 4 или 5 SCons.

Смотрел немного на него. Вроде заманчиво... Но это, по сути, учить ещё один язык, нужно тратить время и усилия. Пока не складывается.
Есть какая-нибудь ссылка на "быстрый старт"?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
dxp
сообщение May 30 2011, 07:20
Сообщение #11


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(AHTOXA @ May 30 2011, 10:57) *
Я тоже исключал. А теперь вроде как изучил особенности, и стало всё предсказуемымsm.gif Всё-таки sh изрядно расширяет функциональность make.

При наличии сконса эта функциональность присутствует нативно и на гораздо более высоком уровне. sm.gif

Цитата(AHTOXA @ May 30 2011, 10:57) *
Смотрел немного на него. Вроде заманчиво... Но это, по сути, учить ещё один язык, нужно тратить время и усилия.
Язык там один надо учить - питон. А это по-любому надо, т.к. оченно могучее средство на всякие случаи. Не настаиваю именно на питоне, есть и другие аналогичные типа Ruby. Тут уж кому что нравится. И большой фактор - окружение, т.е. чтобы было кому вопросы задавать, которые всегда появляются в процессе освоения.

Цитата(AHTOXA @ May 30 2011, 10:57) *
Пока не складывается.
Есть какая-нибудь ссылка на "быстрый старт"?

Хм, специальной ссылки не знаю. Я по документации шёл. Она вполне понятна. Главное - ухватить основную идею. Главное отличие от make там в том, что make основан на правилах: пользователь задаёт правила (явные и неявные), и утилита на основе этих правил строит зависимости. В этом есть определённая гибкость и мощь, но и система эта сложнее для понимания и прогнозирования действий.

В SCons идеология иная: там на уровне скрипта (языка Python) как бы задаётся план действий. Т.е. прямо (путём назначения целей и вызова функций в процессе выполнения скрипта SConstruct - аналог makefile) строится типа списка запланированных действий, которые по окончании прогона SConstruct запускаются на выполнение. Соответственно, весь маршрут линеен и на виду, на любом этапе (которые явные) можно что-то добавить, убрать, откорректировать.

Надо отметить, что в целом SCons - это не аналог make, а скорее аналог связки automake+make, т.е. он автоматом "знает" что запускать по какой платформой и т.п. Но мне такой функционал не был нужен, мне надо было средство - аналог make + удобный набор возможностей по обработке текстовых строк, сопутствующей арифметике, работе с файлами и директориями и т.д. И чтобы всё это было гуманно по отношению к пользователю, т.ч. чтобы после энмесячного перерыва можно было открыть исходник скрипта и спокойно чего читать/редактировать, не обращаясь к документации в качестве справочника. Поэтому я там первым делом удалил весь набор встроенных билдеров (функций сборки) и добавил свои.

Если интересуешься, то возьми для начала какой-нибудь мой вариант из примеров для MSP430. Если как-то знаком с питоном, что порог вхождения там намного ниже, чем с тем же make. Все вопросы кидай в асю, с удовольствием отвечу. sm.gif Ну, а для начала просто доку на один раз пробежать на досуге.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 30 2011, 07:39
Сообщение #12


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(dxp @ May 30 2011, 11:20) *
Если интересуешься, то возьми для начала какой-нибудь мой вариант из примеров для MSP430.

А где взять? Я бы тоже попробовал.
Тем более что пришлось записаться в ряды извращенцев и запускать MSPGCC из-под VS, со всеми сопутствующими издержками типа перекодировки потока вывода ошибок через sed


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение May 30 2011, 07:46
Сообщение #13


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



dxp, спасибо за сконс! Я как-то интересовался им ранее, но, видимо, тогда еще не дорос.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 30 2011, 08:33
Сообщение #14


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(dxp @ May 30 2011, 13:20) *
Если как-то знаком с питоном, что порог вхождения там намного ниже, чем с тем же make.

В том-то и дело, что совсем не знакомsm.gif Да и все мои задачи на данный момент я вроде бы худо-бедно решаю при помощи make... Но всё же почитаю доку на SCons на досугеsm.gif

Цитата(MrYuran @ May 30 2011, 13:39) *
А где взять? Я бы тоже попробовал.

тут sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 30 2011, 08:40
Сообщение #15


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Вот кое-что с хабра...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01544 секунд с 7
ELECTRONIX ©2004-2016