Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Code::Blocks -> How To
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Страницы: 1, 2, 3, 4, 5
MrYuran
В общем-то всем хорош эклипс, окромя одного: задумчивый слишком. На моём Sempron 2800 как-то прямо напрягает уже. Я уж молчу про старенькие атлончики с 256М памяти...
В общем, увидел упоминание на форуме о сабже, решил попробовать.
Первое впечатление - положительное (это размер дистриба 10М и список из пары десятков компиляторов при запуске, среди которых и GCC for MSP430).
Дальше впечатление немного попортилось. Подключение проекта - нудное пофайловое перетаскивание. (в клипсе можно прямо драг&дропом кидать, очень удобный импорт). Но это мелочи. Попытался скомпилить - вот что выдаёт:
"X3_amplifier - Release" uses an invalid compiler. Skipping...
Nothing to be done.
То есть, MSP430 GCC выбрать можно, но он инвалид. Ну и, делать нечего.
Хотя я там честно галочки расставил, ключи компилятора, даже MSP430x149 выбрал...

Хотя я конечно глубоко не вникал, может конечно инструкцию почитать...
В общем, как скомпилить MSP-шную программу?
Начиная с настроек проекта.
MrYuran
Вот нашёл на ихнем форуме:
Код
we have started to integrate the msp430 toolchain in Codeblocks. Our compiler plugin already supports MSP430 but it has not been released until now. The main reason why it has not been released is that we tested the MSP430 Toolchain with the sourceforge binaries. The binaries are generated using cygwin and that can cause some problems under windows. So we will generate the whole MSP430 Toolchain using mingw. As soon the toolchain is available and tested we will send the modification to the CB community.

Насколько я понял, они поддержку MSP430 реализовали в версии под MinGW.
То есть я так понимаю, надо ставить MinGW, потом С::В под него, а потом пробовать?
ukpyr
я пробовал все эти IDE - dev-cpp, codeblocks, eclipse, пришел к выводу что все это не нужно и избыточно.
достаточно простейшего редактора - сначала писал в notepad++, сейчас в scite - легкий, с встроенным скриптованием на Lua. для компиляции использую scons - единый интерфейс для любого компилятора.
MrYuran
Что-то тут всё-таки не то... Попробовал сделать проект под AVR, даже визард такой есть, а всё равно
"uses an invalid compiler. Skipping..."
Видимо, придётся пока в эклипсе работать, а то завтра прийдёт начальник и спросит "как дела", в том смысле, готова ли программа...
AHTOXA
Цитата(MrYuran @ Jul 28 2008, 14:06) *
"X3_amplifier - Release" uses an invalid compiler. Skipping...
Nothing to be done.


Надо было выбирать "console application". Но это на будущее, а сейчас достаточно зайти в свойства проекта (Project-properties), и в Project settings - Platforms поставить птичку на Windiows (можно поставить вообще все птички там).
haker_fox
Цитата(MrYuran @ Jul 28 2008, 20:10) *
Попробовал сделать проект под AVR, даже визард такой есть, а всё равно

С Wizard'ом у меня тоже не получилось, когда ради интереса решил недавно попробывать smile.gif Ранее (с 2006 г) и по ныне создаю "Console Application", а все правила компиляции задаю через makefile. Естественно CodeBlock'у нужно указать, что мы используем наш собственный makefile. Все отлично работает.
MrYuran
Короче, дома на свежую голову под бутылочку пивка разобрался. Оказывается, даже проще намного, чем в эклипсе. Есть такая менюха Settings->Compiler and Debugger. Вот там надо прописать все пути до компиляторов. По умолчанию там забиты стандартные пути, но они могут и не совпадать. Например, у меня WinAVR стоит в папке С:\WinAVR-20080512, а там забито просто С:\WinAVR. Для мсп телодвижений побольше, поскольку визарда нет, приходится всё ручками расставлять. Но достаточно один раз настроить и забыть. В общем, эклипс может где-то и красивше, но тут как-то всё проще и понятнее. Да и не тормозит вообще. А клипсу каспер вообще рутшеллом считал поначалу, пришлось объяснить, что он не прав. Думаю, что и дебаггер настроить не составит труда. Только он мне не нужен, как-то привык уже, даже JTAG обычно не выводим, оставляем неподключенные ноги.

Короче, будет время - может кикстарт-мануал напишу. если кому надо. Ещё вот думаю, визард для МСП надо написать, если готового не найду.
А с мэйкфайлом-то и ежу понятно, что всё заработает. Единственное - путь до маке.ехе должен в системе быть прописан
Непомнящий Евгений
Цитата(ukpyr @ Jul 28 2008, 14:15) *
я пробовал все эти IDE - dev-cpp, codeblocks, eclipse, пришел к выводу что все это не нужно и избыточно.
достаточно простейшего редактора....

Все это здорово, но без автодополнения, помощи по аргументам функций, быстрой навигации к определению\объявлению функции\класса\переменной я уже как то жизни себе и не представляю smile.gif

Цитата
На моём Sempron 2800 как-то прямо напрягает уже.


У меня на рабочем пень4 3200 и 1 гб оперативы вполне прилично работает. Что касается 256 мб озу - так проще докупить, имхо, она сейчас дешевая.

Что касается кодеблока - штука конечно симпатичная, но с автодополнением на С++ коде у меня были грабли. После чего я его забросил.
MrYuran
Цитата(Непомнящий Евгений @ Jul 29 2008, 08:44) *
У меня на рабочем пень4 3200 и 1 гб оперативы вполне прилично работает. Что касается 256 мб озу - так проще докупить, имхо, она сейчас дешевая.

К минимализьму надо стремиться! Сисадмин нас вообще хотел на терминалы пересадить, еле отбрыкались. Пока. Да и например, тот же VS у меня просто терпения не хватило поставить до конца. То ему сервиспак третий подавай, то ещё чего... А в результате пишешь приложение размером 50кБ, для работы которого пользователь должен установить какие-то фреймворки и прочую лабуду...
А С::В для программирования контроллеров - имхо - самое то. Ничего лишнего, и вроде всё что нужно есть. А те же подсказки в эклипсе то работают, то нет, то парсеры включены, то вдруг галки опадают... Системы я так и не обнаружил. А вот тормоза конкретные.
Была идея ещё накрайняк программерс ноутпадом воспользоваться из WinAVR, но вот он как раз какой-то убогий.
Непомнящий Евгений
Цитата
Сисадмин нас вообще хотел на терминалы пересадить, еле отбрыкались.


Тут какая-то подмена понятий. По-идее, сисадмин нужен для удобства пользователей, а у вас получается наоборот smile.gif
MrYuran
Цитата(Непомнящий Евгений @ Jul 29 2008, 10:31) *
Тут какая-то подмена понятий. По-идее, сисадмин нужен для удобства пользователей, а у вас получается наоборот smile.gif

Сисадмин несёт уголовную ответственность за ломаный софт, стоящий на подотчётных ему тачках. А он её нести не хочет. А с терминалами всё намного проще. И дешевле. И напрягаться не надо. Одна загвоздка - иногда терминальный сервер виснет, и полконторы идёт курить... И начинают поминать всяческими недобрыми словами...
//---------------------------------------
Щас увидел - подсказки в С::В тоже работают, как и в эклипсе. И это не может не радовать, тем более что работает всё намного быстрее. И дистриб 10 метров, а не 100
Непомнящий Евгений
Цитата(MrYuran @ Jul 29 2008, 11:14) *
Сисадмин несёт уголовную ответственность за ломаный софт, стоящий на подотчётных ему тачках. А он её нести не хочет.

Ну так не надо ставить ломанный софт, да и все smile.gif smile.gif. И кстати, у нас по фирме был какой-то приказ, в соответствии с которым ответственность за свой компьютер несет его пользователь...
Цитата
Щас увидел - подсказки в С::В тоже работают, как и в эклипсе. И это не может не радовать, тем более что работает всё намного быстрее. И дистриб 10 метров, а не 100


Работают, но не всегда. Особенно на всяких классах\шаблонах. Отладка там тоже какая-то недоделанная (хотя может я в ней не разобрался до конца просто).

Эклипс конечно монстрообразнее и тормознутее, но возможностей у него все же побольше.
MrYuran
Цитата(Непомнящий Евгений @ Jul 29 2008, 11:25) *
Ну так не надо ставить ломанный софт, да и все smile.gif smile.gif.

smile.gif biggrin.gif $$$$-??? laughing.gif
вот, пытаемся, как видите... хотя бы с ИАРа слезть... Кстати, даже по сравнению с ИАРом С::В мне нравится больше
Цитата
И кстати, у нас по фирме был какой-то приказ, в соответствии с которым ответственность за свой компьютер несет его пользователь...

Приказ не отменяет законов РФ, по которым ответственность ложится также на сисадмина и директора
Непомнящий Евгений
Цитата(MrYuran @ Jul 29 2008, 11:36) *
Кстати, даже по сравнению с ИАРом С::В мне нравится больше


Дык иар и c::b - это несколько разные вещи smile.gif. иар = компилер (хороший) + иде (угребищная).
Вместо иар-овской иде давно юзаю эклипс, а в качестве компилятора продолжаю юзать иар.
С::b также безусловно лучше иар-овской иде. А вот что юзать вместе с ним в качестве компилятора - тут уже свобода выбора.

Цитата
Приказ не отменяет законов РФ, по которым ответственность ложится также на сисадмина и директора


Интересно, зачем же тогда приказ делали? Чтобы юзера не расслаблялись smile.gif?
AHTOXA
А мне и в Эклипсе и в c::b не хватает одной очень удобной фичи, к которой я привык в med : переход по стеку вызовов туда-сюда по Ctrl+Enter и Alt+Enter...
haker_fox
Цитата(MrYuran @ Jul 29 2008, 13:24) *
А с мэйкфайлом-то и ежу понятно, что всё заработает. Единственное - путь до маке.ехе должен в системе быть прописан

Так, а зачем все эти мороки с визардом? Проект непереносимым получается: каталог с проектом просто так не перекинешь на др. ком, где нет C::B, но есть winavr. А с makefile - запросто! Очень удобно! Но это уже кому как)
А вообще интересную тенденцию наблюдаю, может быть не я один: увеличивается интерес к C::B. Еще год назад такого небыло. Очевидно это связано с недавней новой восьмой версией.
klen
Цитата(haker_fox @ Jul 29 2008, 12:39) *
А вообще интересную тенденцию наблюдаю...


это не к CB интерес увеличивается, а к другим IDE уменьшается.. Eclispse ДО жути достал своей явой и мехом вовнутрь вывернутым интерфейсом. Однако он умеет делать все. никак не соскочю с него.

Я никак не пойму КАК МОЖНО ПИСАТЬ IDE для людей и навязывая им невозможность создавать ПРОСТО ПРОЕКТ управляймый make или scons??? А тенденция.. "на тебе, тупой программер, визард который только в нашем формате сделает тебе проект!!!" зла не хватет!
MrYuran
Код
msp430-gcc.exe -mmcu=msp430x149     -c AD7708\AD7708.c -o E:\work\Программы\X3_amp\X3_amplifier\.objs\AD7708\AD7708.o msp430-ld.exe  -o .elf E:\work\Программы\X3_amp\X3_amplifier\.objs\AD7708\AD7708.o    -lm -lc  Output size is 1.25 KB Process terminated with status 0 (0 minutes, 2 seconds) 0 errors, 0 warnings
Вот она, квинтэссенция!
мелочь конечно, проект типа ХеллоВорлд, но всё равно приятно.
КСТАТИ: в мэйках обычно ставят LD = msp430-gcc.exe, а разница в чём? почему не ld ?
haker_fox
Цитата(klen @ Jul 29 2008, 18:12) *
это не к CB интерес увеличивается, а к другим IDE уменьшается.. Eclispse ДО жути достал

А как же профессиональный MultiEdit и др.?
Цитата(klen @ Jul 29 2008, 18:12) *
Я никак не пойму КАК МОЖНО ПИСАТЬ IDE для людей и навязывая им невозможность создавать ПРОСТО ПРОЕКТ управляймый make или scons???

Согласен. В отношении CB. Но напрягает не сильно. Есть возможность все поправить после создания проекта.
Цитата(klen @ Jul 29 2008, 18:12) *
А тенденция.. "на тебе, тупой программер, визард который только в нашем формате сделает тебе проект!!!" зла не хватет!

bb-offtopic.gif И куда катиться цивилизация? sad.gif
msalov
Цитата(MrYuran @ Jul 29 2008, 13:00) *
КСТАТИ: в мэйках обычно ставят LD = msp430-gcc.exe, а разница в чём? почему не ld ?

Если ld, то надо самому прописывать все параметры: все пути к библиотекам, все библиотеки в нужном порядке и пр. Если исользовать gcc вместо, то можно обойтись меньшим колличеством вводмой информации.
EugeNNe
А как к этому С::В JTAG ICE или JTAG ICE mkII прикрутить для работы с AVRами?
UniBomb
Цитата
Так, а зачем все эти мороки с визардом? Проект непереносимым получается: каталог с проектом просто так не перекинешь на др. ком, где нет C::B, но есть winavrя

Всё очень легко переносится. На самом деле в C::B используется тот же avr-gcc (если в контексте про winavr), тот же makefile. Проект можно создавать либо через визард, либо как консольный. В любом случае всегда можно поменять структуру проекта. Есть ещё и третий варинт - написать свой визард (благо есть встроенные средства для этого).


Цитата
А тенденция.. "на тебе, тупой программер, визард который только в нашем формате сделает тебе проект!!!" зла не хватет!

Совсем не так. Без обид, но такие мысли появляются только вследствии недостаточных познаний в вопросе. Подробнее я уже выше написал. Практически в любой иде файл проекта - это только для самой иде, главными же по прежнему являются файлы с расширениями *c, *cpp, *h. Перекомпоновать проект есть возможность в любой иде (через этот самый файл проекта), другой вопрос - зачем это нужно)))) Если я сижу в одной иде, то зачем мне её переносить в другую?


А по сажу хочу сказать, что C::B одна из самых приятных вещей, с которой когда либо сталкивался. Единственное что меня останавливает для полного перехода на неё - это весьма скромные познания GNU-GCC (и avr-gcc в частности) и GNU-DGB (вроде правильно написал, в общем это гнушный отладчик). Да и просто саму среду вдоль и поперёк всё времени не хватает избегать. А так среда ну просто изуительная)))
AHTOXA
Цитата(UniBomb @ Aug 8 2008, 19:22) *
Да и просто саму среду вдоль и поперёк всё времени не хватает избегать. А так среда ну просто изуительная)))


Познакомитесь поближе - появятся сомненияsmile.gif Среда заточена под PC, и никакие плагины этого пока не могут изменить, ибо это в мозгах разработчиков. Гляньте вот на этот показательный топик на их сайте.
И подводящая итог цитата оттуда:
Цитата
This annoying behaviour bothers me for at least two years now. And it doesn't seem to be fixed in the future, that is really frustrating.
And then there are these PC software gurus that don't stop to tell you that it works fine, when they hit the stop button. But none of them has even tried to debug a remote target.

This little neat "Bug" or missing feature makes codeblocks still unusable for embedded devlopement.

Btw. the arm-elf-insight debugger works fine, and the stop button really stops the target as expected.
UniBomb
AHTOXA

Ну как тебе сказать - программирую же в программерс нотпаде. По сути то и нужны только текстовый редактор, да утилитка make.exe. В c::b можно удобнее работать непосредсвенно с кодом. Ну да, иногда нехватает дизасемблера удобного, просмотрщика памяти и регистров, но и без этого в принципе можно обойтись. Ну в крайнем случае отдебажить в АврСтудии. Да и потом я же не только для аврок пишу программы - и для PC)))
AHTOXA
Цитата(UniBomb @ Aug 9 2008, 01:10) *
Ну как тебе сказать - программирую же в программерс нотпаде. По сути то и нужны только текстовый редактор, да утилитка make.exe.


Когда говорят "изумительная среда", обычно имеют в виду немного большее, чем просто текстовый редактор.

Цитата(UniBomb @ Aug 9 2008, 01:10) *
В c::b можно удобнее работать непосредсвенно с кодом. Ну да, иногда нехватает дизасемблера удобного, просмотрщика памяти и регистров, но и без этого в принципе можно обойтись. Ну в крайнем случае отдебажить в АврСтудии. Да и потом я же не только для аврок пишу программы - и для PC)))


Короче, c::b Вы и не пользуетесь особо, а просто видели пару раз, так? smile.gif
YKonstantin
Цитата(klen @ Jul 29 2008, 12:12) *
это не к CB интерес увеличивается, а к другим IDE уменьшается.. Eclispse ДО жути достал своей явой и мехом вовнутрь вывернутым интерфейсом. Однако он умеет делать все. никак не соскочю с него.

Я никак не пойму КАК МОЖНО ПИСАТЬ IDE для людей и навязывая им невозможность создавать ПРОСТО ПРОЕКТ управляймый make или scons??? А тенденция.. "на тебе, тупой программер, визард который только в нашем формате сделает тебе проект!!!" зла не хватет!


Однако, каким же бывает "красивым" Eclipse :
Нажмите для просмотра прикрепленного файла
UniBomb
Цитата
Когда говорят "изумительная среда", обычно имеют в виду немного большее, чем просто текстовый редактор.

Когда так говорят, обычно имеют в виду немного большее чем можно ожидать от среды)) Я не ожидал множества наворотов конкретно в отношении программирования аврок, но вот во всём остальном меня более чем устраивает.

Цитата
Короче, c::b Вы и не пользуетесь особо, а просто видели пару раз, так?

Нет, не так. Всё что связано с программированием под виньдовс происходит у меня в среде c::b. Ну или почти всё))) Учусь я ещё просто)))
MrYuran
Цитата(UniBomb @ Aug 8 2008, 17:22) *
Есть ещё и третий варинт - написать свой визард (благо есть встроенные средства для этого).

Можно поподробнее?
Что за встроенные средства?
Начал тут колупать визард AVR на предмет переделки в MSP430, общая идеология понятна, но вручную как-то мутно...

Кстати о птичках: может, у кого готовый есть?
UniBomb
Цитата(MrYuran @ Aug 10 2008, 09:09) *
Можно поподробнее?
Что за встроенные средства?

Как правильно заметил AHTOXA спецом по c::b я не являюсь smile.gif посему ответ будет краток:

Create new project -> code::blocks plugin -> next -> "plugin type" : Wizard -> и так далее.

Правда нужен ещё и установленный wxWidgets smile.gif
AVR
Цитата(haker_fox @ Jul 29 2008, 03:21) *
С Wizard'ом у меня тоже не получилось, когда ради интереса решил недавно попробывать smile.gif Ранее (с 2006 г) и по ныне создаю "Console Application", а все правила компиляции задаю через makefile. Естественно CodeBlock'у нужно указать, что мы используем наш собственный makefile. Все отлично работает.
Очень странно, я сейчас только что попробовал с визардом для AVR под CodeBlocks 8.02 и оно и компилит и по JTAGу отлаживает smile.gif Что я делаю не так? smile.gif Или я что-то недопонял и какая-то функциональность отсутствует?
ЗЫ использую avarice

Только пока не совсем понятно а как же с помощью GDB смотреть значения регистров?..
haker_fox
Цитата(AVR @ Sep 7 2008, 20:58) *
Очень странно, я сейчас только что попробовал с визардом для AVR под CodeBlocks 8.02 и оно и компилит и по JTAGу отлаживает smile.gif Что я делаю не так? smile.gif

Я не спорю, что работает. Просто у меня не заработало с первого раза для AVR, ну я и не стал мучаться. Тем более уже была привычка, о которой я рассказал выше.
Цитата(AVR @ Sep 7 2008, 20:58) *
Или я что-то недопонял и какая-то функциональность отсутствует?

Нет, все верно поняли: были ошибки с созданием проекта.
Цитата(AVR @ Sep 7 2008, 20:58) *
ЗЫ использую avarice
Только пока не совсем понятно а как же с помощью GDB смотреть значения регистров?..

Вот тут уже помочь не могу, хоть и GCC использую, отлаживаюсь через RS-232.
Григорий2000
Может не в тему...
Уважаемые, кто знаком с вопросом, дайте резюме по поводу всплывающих подсказок элементов классов и структур, можно их увидеть или нет.
И второе: есть много текста по поводу различных плагинов, а есть ли они по решению вышеобозначенного вопроса - непонятно...
MrYuran
Цитата(Григорий2000 @ Oct 3 2008, 09:23) *
Может не в тему...
Уважаемые, кто знаком с вопросом, дайте резюме по поводу всплывающих подсказок элементов классов и структур, можно их увидеть или нет.

Нажмите для просмотра прикрепленного файла
Так устроит?
По-моему, вполне нормально. И намного быстрее работает, чем в эклипсе.
Правда, не всплывают как в клипсе окошки с объявлением переменных и функций. Да, в общем-то, не особо и надо
Григорий2000
Цитата(MrYuran @ Oct 3 2008, 09:52) *
Нажмите для просмотра прикрепленного файла
Так устроит?
По-моему, вполне нормально. И намного быстрее работает, чем в эклипсе.
Правда, не всплывают как в клипсе окошки с объявлением переменных и функций. Да, в общем-то, не особо и надо

Да вполне бы устроило, но почему-то неработает. у меня сейчас проет не С++ а просто С
и в типах структур определенных typedef struct... не видит видимо среда эти элементы... может я непонимаю как среде их понятно показать...
или это в достаточно свежих билдах реализовано... у меня от 27 февраля с.г. (8.02)
проясните.. будте любезны))
MrYuran
Цитата(Григорий2000 @ Oct 3 2008, 10:08) *
Да вполне бы устроило, но почему-то неработает. у меня сейчас проет не С++ а просто С

Я заметил, что он отсвечивает подсказки на новые объекты после компиляции. Видимо, переиндексирует как-то исходники. Опять же, видимо, на лету текст не сканирует. И это положительно сказывается на быстродействии. Может, есть какой-то другой способ. Меня вполне устраивает.
PS: у меня проект тоже на си, так что это не критично.
Григорий2000
Еще раз скажите у вас это класс или структура?
если структура - как определена?
проект cpp?
MrYuran
Цитата(Григорий2000 @ Oct 3 2008, 10:35) *
Еще раз скажите у вас это класс или структура?
если структура - как определена?
проект cpp?

Проект с (без плюсов)
структура, определена в заголовочном файле, который инклудится сверху.
Подсказки начинают всплывать после сборки проекта
Подсказки выплывают ко всем переменным, константам, в том числе и enum-ным, функциям и т.д.
Григорий2000
Подсказки к функциям и константам у меня видны, а вот падающего списка элементов структуры - нет. подскажите последнее - версия плагина Code completion в свойствах иде, у меня 0.7
Григорий2000
то-ли лыжи не едут...
Спасибо за ответы.

то-ли лыжи не едут...
Спасибо за ответы.
Григорий2000
Не поймите неправильно... но я скачал последнюю версию CodeBlocks набрал простейший текст и... чуда непроизошло...
возврашаясь к последнему диалогу и MrYuran в частности прошу прислать рабочий пример проекта(практически пустого, вновь созданного с одной структурой и функций майн и файлами проекта) если это несложно.
Заранее благодарен.
MrYuran
Поиграйтесь настройками Settings->Editor->Code Completion and...
Я выставил вот так, и всё заработало
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
Григорий2000
Тупо повторив - результат не получил... завтра еще подумаю...
еще возможно имеет значение тип создаваемого проекта(я делал по шаблону AVR) хотя это уже из разряда пляски с бубном)))
MrYuran
Цитата(Григорий2000 @ Oct 5 2008, 21:58) *
еще возможно имеет значение тип создаваемого проекта(я делал по шаблону AVR) хотя это уже из разряда пляски с бубном)))

Я дома тоже делал с АВР. На работе - MSPGCC.
Если совсем ничего не выходит, придётся читать мануал. Тем более что он очень даже прилично сделан. Я себе распечатал в виде книжечки.
Григорий2000
Прогресс конечно имеется.. но в использовании в таком виде речи нет: при запрещении SmartSense - появляется ниспадающее меню с вариантами имен, но все что есть в проекте и все сразу и глобальные (можно отключить) и внешние(то-же можно отключить).
Я конечно разберусь - вопрос времени....
Видимо есть некоторое недопонимание с средой и тем как она работает. ну и не быстрое чтение на "англицком" то-же дает о себе знать...
Если возможно возмите проект и поместите например в корень какого нить диска(что-бы не учитывались настройки среды для вашего рабочего каталога ) и сообщите результат.
работает ли в таком виде..
MrYuran
Цитата(Григорий2000 @ Oct 6 2008, 10:46) *
работает ли в таком виде..

В таком чё-то никак...
Немного изменил описание структуры - вот:
Нажмите для просмотра прикрепленного файла
Григорий2000
Эврика! Теперь работает... а я использовал всегда именованные струтуры... потому и неработало)))
Премного благодарен уважаемый... я б об этом думал бы в последнюю очередь... еслиб догадался)))
Теперь CodeBlocks для меня стала нормальной средой, а не просто бесплатным продуктом)))
Григорий2000
Подскажите, кто-нибудь пользуется автогенерацией makefile или все используют свой внешний makefile ?
Что то у меня не получилось скомпилировать проект из неодного исходника, с одним компилирует а с неодним неполучается - линкер берет только один объектный файл, и , соответственно, пишет что ненайдены внешние обьекты(функции/переменные).
MrYuran
Поставьте в настройках галочки на все предупреждения, тогда будет видно, из-за чего не линкует. Ещё, если проект разложен по папкам, надо либо прописывать компилятору и линкеру пути для поиска к каждой папке, но это лениво, я прописываю путь к корню проекта, а в исходниках прописываю полные относительные пути к хедерам, типа #include "../utils/utils.h"
Таким образом работает.
Григорий2000
варнинги вывел... появились предупреждения о коментах типа с++ в файлах С90 и т.п
компиляция проходит, хедеры все доступны, файлы для чистоты эксперимента свалил в одну папку.
не вижу что-бы линкеру передавались все файлы проекта, передается только один(как нибудь можно вывести в консоль запуск линкера с ключами, что-бы посмотреть как это делает среда?) и естественно если он один у линкера - ошибки - нет обьектов объявленных там как extern или внешних функций.
Цитата
Compiling: ..\Lib\DELAY.C
Compiling: ..\Lib\buffer.c
..\Lib\buffer.c:2:1: warning: C++ style comments are not allowed in ISO C90
..\Lib\buffer.c:2:1: warning: (this will be reported only once per input file)
In file included from ..\Lib\buffer.c:18:
..\Lib\/buffer.h:2:1: warning: C++ style comments are not allowed in ISO C90
..\Lib\/buffer.h:2:1: warning: (this will be reported only once per input file)
In file included from ..\Lib\buffer.c:21:
..\Lib\/avrlibdefs.h:2:1: warning: C++ style comments are not allowed in ISO C90
..\Lib\/avrlibdefs.h:2:1: warning: (this will be reported only once per input file)
..\Lib\buffer.c: In function 'bufferGetAtIndex':
..\Lib\buffer.c:101: warning: ISO C90 forbids mixed declarations and code
..\Lib\buffer.c: In function 'bufferIsNotFull':
..\Lib\buffer.c:135: warning: ISO C90 forbids mixed declarations and code
Compiling: ..\Lib\ds18b20.c
..\Lib\ds18b20.c:3:1: warning: C++ style comments are not allowed in ISO C90
..\Lib\ds18b20.c:3:1: warning: (this will be reported only once per input file)
In file included from ..\Lib\ds18b20.c:5:
..\Lib\/..\Lib\1WIRE.H:7:25: warning: C++ style comments are not allowed in ISO C90
..\Lib\/..\Lib\1WIRE.H:7:25: warning: (this will be reported only once per input file)
In file included from ..\Lib\ds18b20.c:6:
..\Lib\/ds18b20.h:11:1: warning: C++ style comments are not allowed in ISO C90
..\Lib\/ds18b20.h:11:1: warning: (this will be reported only once per input file)
Compiling: main.c
In file included from main.c:6:
..\Lib\ds18b20.h:11:1: warning: C++ style comments are not allowed in ISO C90
..\Lib\ds18b20.h:11:1: warning: (this will be reported only once per input file)
main.c:14:1: warning: C++ style comments are not allowed in ISO C90
main.c:14:1: warning: (this will be reported only once per input file)
Compiling: ..\Lib\1WIRE.C
Linking console executable: bin\Debug\testProject.elf
obj\Debug\Lib\ds18b20.o: In function `ds18b20Init':
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:91: undefined reference to `w1_rom_search'
obj\Debug\Lib\ds18b20.o: In function `ds1820StartConversion':
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:139: undefined reference to `w1_reset'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:151: undefined reference to `w1_command'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:154: undefined reference to `w1_command'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:157: undefined reference to `w1_command'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:160: undefined reference to `w1_command'
obj\Debug\Lib\ds18b20.o: In function `ds1820ReadTemperature':
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:199: undefined reference to `w1_reset'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:209: undefined reference to `w1_bit_io'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:218: undefined reference to `w1_reset'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:231: undefined reference to `w1_command'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:236: undefined reference to `w1_command'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:242: undefined reference to `w1_command'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:247: undefined reference to `w1_command'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:254: undefined reference to `w1_byte_rd'
C:\work\TestFolder\testProject/..\Lib\ds18b20.c:255: undefined reference to `w1_byte_rd'
Process terminated with status 1 (0 minutes, 1 seconds)
15 errors, 18 warnings


где ошибка?)) в каких настройках
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.