|
|
  |
компилятор |
|
|
|
Jun 26 2008, 18:07
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 31-07-06
Из: Москва
Пользователь №: 19 223

|
Да, существует. Не только бесплатный, но и свободный - т.е. с открытыми и свободно распространяемыми исходными кодами. Называется сие чудо GNU GCC. Работает на всех современных ОС - GNU/Linux, Windows, MacOS, *BSD и т.п. Скачать последние пакеты исходных кодов можно здесь: http://gnuarm.org/files.htmlНа этом же сайте можно почитать доки. Если интересует, как данный комплект правильно собрать под ОС GNU/Linux, могу рассказать. Под windows есть хорошая сборка - http://www.yagarto.de/
|
|
|
|
|
Jun 27 2008, 09:29
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 31-07-06
Из: Москва
Пользователь №: 19 223

|
Да, есть: http://sdcc.sourceforge.net/Тоже open-source компилятор.
|
|
|
|
|
Jun 27 2008, 12:51
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 31-07-06
Из: Москва
Пользователь №: 19 223

|
Для GCC лучше Eclipse ( хотя это не редактор, а IDE ). Для sdcc любой бесплатный редактор с подсветкой синтаксиса и возможностью подключения внешних программ с навеской на них "горячих клавиш". Первый попавшийся для win - http://www.crimsoneditor.com/Для GNU/Linux - vim/gvim
|
|
|
|
|
Jun 27 2008, 19:31
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 31-07-06
Из: Москва
Пользователь №: 19 223

|
Ну вы хотя бы дочитайте доки до конца. В документе http://www.yagarto.de/howto/yagarto2/index.html смотрите пункт "Configure the debugger" - там описано как связать OpenOCD с GDB и Eclipse'ом.
|
|
|
|
|
Jun 29 2008, 07:23
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Настроил Eclips скачал пример с сайта yagarto импортировал его, все компилируется появляется hex файл для загрузки в контроллер. до этого работал с другой средой разработки там для начала нового проекта нужно было создать проект настроить IDE и добавить хотябы один файл с функцией Main() и все. В примере много всяких файлов, это пугает  . где указывается тип контроллера ?
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 29 2008, 20:18
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
сдесь нашел пример для компилятора sdcc http://mcu-programming.blogspot.com/2006/0...or-control.htmlсохранил два файла pwm_servos.h и test_servos.c в настройках указал путь к компилятору C:\Program Files\SDCC\bin\sdcc.exe далее Build all появляются две ошибки Description Resource Path Location Type make: *** No rule to make target `all'. TEST1 0 C/C++ Problem Error launching external scanner info generator (gcc -E -P -v -dD C:/Documents and Settings/Sergey/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c) TEST1 -1 C/C++ Problem Что то я не правильно делаю, помогите разобраться.
|
|
|
|
|
Jun 30 2008, 13:23
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Ни когда с такими компиляторами дела не имел, сам не собирал. Внешний вид и Eclips и codebloks не создают впечатление бесплатных IDE  . Не хочу показаться назойливым со своими вопросами, но пока не очень получается разобраться, Хотелось бы попробовать что нить откомпилить и посмотреть как будет работать код с бесплатного компилятора. Если не затруднит подскажите порядок создание проекта для Sdcc или yagarto(winarm) Разници думаю большой нету. что сюда нужно добавить?  1 создать проект 2 в настройках указать путь к компилятору 3 добавить файл TEST.с в нем void main(){ int p = 0; } 4 build all
Сообщение отредактировал sergey sva - Jun 30 2008, 14:14
|
|
|
|
|
Jul 1 2008, 06:44
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 31-07-06
Из: Москва
Пользователь №: 19 223

|
2 sergey sva: Давайте разберёмся сначала с Eclipse. Читайте внимательно http://www.yagarto.de/howto/yagarto2/index.html и делайте все шаг за шагом. Как только что-то не получается или что-то не понятно - вы сразу говорите, где именно не получается.
|
|
|
|
|
Jul 1 2008, 13:29
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(voyt @ Jul 1 2008, 10:44)  2 sergey sva: Давайте разберёмся сначала с Eclipse. Читайте внимательно http://www.yagarto.de/howto/yagarto2/index.html и делайте все шаг за шагом. Как только что-то не получается или что-то не понятно - вы сразу говорите, где именно не получается. В процессе изучение Eclips вот наткнулся, может тоже кому пригодится там пдф и примеры есть для at91sam7s256. http://www.argussoft.ru/webroot/delivery/f...rial_source.zipС готовым примеров все получается, компилируется ,получается HEX ram и hex Rom. Армы раньше не программировал поэтому такой вопрос для чего два файла RAM и ROM ? Еще вопрос по поводу скрипта и макефиле , макфиле поковырял так понял в нем указываются всякие директории и прочие настройки, а вот скрипт для чего?
|
|
|
|
|
Jul 2 2008, 10:13
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 31-07-06
Из: Москва
Пользователь №: 19 223

|
Цитата(sergey sva @ Jul 1 2008, 17:29)  С готовым примеров все получается, компилируется ,получается HEX ram и hex Rom. Армы раньше не программировал поэтому такой вопрос для чего два файла RAM и ROM ? Мне кажется, чтобы задавать такие вопросы необходимо хотя бы ознакомится с архитектурой ARM для начала. Я не знаю, т.к. не понятно для какой платформы ( м-р + память ). Рискну предположить, что один бинарник для загрузки во флеш ( ROM ), а второй для отладки - загрузка в RAM ( SDRAM или SRAM ). Цитата(sergey sva @ Jul 1 2008, 17:29)  Еще вопрос по поводу скрипта и макефиле , макфиле поковырял так понял в нем указываются всякие директории и прочие настройки, а вот скрипт для чего? на русском - http://ru.wikipedia.org/wiki/Makeна англ - http://en.wikipedia.org/wiki/Make_(software)
Сообщение отредактировал voyt - Jul 2 2008, 10:14
|
|
|
|
|
Jul 2 2008, 11:22
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(sergey sva @ Jul 1 2008, 16:29)  Армы раньше не программировал поэтому такой вопрос для чего два файла RAM и ROM ? АРМы умеют исполнять программу из ОЗУ. Поэтому, пока хватает объема имеющегося ОЗУ, программу целесообразно отлаживать, исполняя ее в ОЗУ. Преимущества - не расходуется ресурс перезаписи флеш и загрузка происходит быстрее. Цитата(sergey sva @ Jul 1 2008, 16:29)  а вот скрипт для чего? А в скрипте расписано распределение памяти - где и какая память в кристалле есть, куда что (код, данные, константы, переменные) в эту память раскладывать.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 2 2008, 15:11
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(sergey sva @ Jul 2 2008, 15:33)  Может есть для Eclipsa какой компилятор чтобы программы для PC можно было своять, как на билдаре например ? MinGW/MSYS (порт GCC (компиляторы) + binutils (ассемблер, линкер) + gdb (дебаггер) + прочие утилиты) позволяют создавать как консольные, так и оконные (через WinAPI) приложения для PC. Ну а поскольку это тоже порт GCC, то работа практически не отличается от работы с arm-gcc. WxWidgets позволяет упростить создание оконных приложений. А такого, чтобы мышкой кнопочки по экрану расставлять - не встречалось.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 2 2008, 21:58
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
Цитата(sergey sva @ Jul 2 2008, 23:33)  Может есть для Eclipsa какой компилятор чтобы программы для PC можно было своять, как на билдаре например ? На самом деле, чтоб "как в билдере" - это не компилер выбирать надо, а оболочку и визуальную библиотеку. Я пробовал че-то простенькое нарисовать с помощью Code::BlocKs и wxWidgets - соотв. оболочка и набор библиотек (в т.ч. и для UI). Сама оболочка не очень понравилась. Почему - пока не понял. Но факт - так же как и в борланде, можно быстренько нарисовать окошко, расставить события. А потом (пока не пробовал - руки не дошли) перетащить сгенеренный код в любимую оболочку и там править функционал. Для справки - и wxWidgets, и Code::Blocks - лицензия по типу гпл с небольшими (имхо) отличиями. Оболочка не включает в себя компилер и пр. утилы, их надо привинчивать самому, как и к эклипс. ЗЫ: наврал, оболочка, оказывается - под GPLv3.
|
|
|
|
|
Jul 5 2008, 09:45
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(Leen @ Jul 3 2008, 01:58)  На самом деле, чтоб "как в билдере" - это не компилер выбирать надо, а оболочку и визуальную библиотеку. Я пробовал че-то простенькое нарисовать с помощью Code::BlocKs и wxWidgets - соотв. оболочка и набор библиотек (в т.ч. и для UI). Сама оболочка не очень понравилась. Почему - пока не понял. Сообщите, пожалуйста, чем не понравилась. Вот мне, например, не понравился KDevelop и Qt, и наоборот очень понравился CodeBlocks и особенно wxWidgets... Цитата(Leen @ Jul 3 2008, 01:58)  Оболочка не включает в себя компилер и пр. утилы, их надо привинчивать самому, как и к эклипс. Например, с "оболочкой" CodeBlocks для windows поставляется GCC и MinGW... Привинчивается автоматически. Так же нет проблем с "привинчиванием" GCC под Linux...
--------------------
|
|
|
|
|
Jul 6 2008, 12:37
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(sergey sva @ Jul 2 2008, 16:33)  Может есть для Eclipsa какой компилятор чтобы программы для PC можно было своять, как на билдаре например ? Не для eclipse, но все-же - Visual C# express edition. Довольно удобно и бесплатно. Дизайнер форм вполне на уровне. Лично я для написания гуевых утилит пользую его, вполне доволен. C# использует .Net Из этого проистекает как много плюсов, так и несколько минусов: + сборка мусора + среда автоматом отслеживает многие "тупые" ошибки типа выхода за границы буфера и т.д., вываливая вполне внятные исключения со снимком стека (перечнем функций). а не что-то типа "Access violation. Read address 0xFF11FF2323" + язык имеет многое, чего (имхо) не хватает С++ - делегаты, модульность, строгое приведение типов, опциональная проверка переполнения, foreach, etc, etc - .Net на не вашей машине скорее всего придется ставить отдельно. А это примерно 20 метров. - Возможно, некоторая тормознутость в ОСОБО узких местах. Хотя говорят, что за счет рантайм оптимизации на некоторых тестах .Net побеждает нативные компиляторы.
|
|
|
|
|
Jul 6 2008, 14:11
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Visual C# express edition Попробую обязательно. Сейчас пытаюсь скрутить codebloks + Mingw +wxWidgets-2.8.8 при попытке откомпилировать библиотеку wx вылетает ошибка, где конкретно в чем не понятно.Codebloks переустановил ,скачал новую библиотеку в install.exe, попробовал параметр реестра Nls/codepage "1252" = 1252nls поменял на "1252" = 1251nls не чего не дало. Может еще нужно что то подредактировать в файле makefile.gcc или config.gcc ? Цитата C:\wxWidgets-2.8.8\build\msw>mingw32-make -f makefile.gcc BUILD=debug WXUNIV=0 U NICODE=1 if not exist gcc_mswud mkdir gcc_mswud process_begin: CreateProcess(NULL, -c "if not exist gcc_mswud mkdir gcc_mswud", ...) failed. make (e=2): ═х єфрхЄё эрщЄш єърчрээ√щ Їрщы. mingw32-make: [gcc_mswud] Error 2 (ignored) if not exist ..\..\lib\gcc_lib mkdir ..\..\lib\gcc_lib process_begin: CreateProcess(NULL, -c "if not exist ..\..\lib\gcc_lib mkdir ..\. .\lib\gcc_lib", ...) failed. make (e=2): ═х єфрхЄё эрщЄш єърчрээ√щ Їрщы. mingw32-make: *** [..\..\lib\gcc_lib] Error 2
C:\wxWidgets-2.8.8\build\msw>
Сообщение отредактировал sergey sva - Jul 6 2008, 14:23
|
|
|
|
|
Jul 6 2008, 14:26
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(sergey sva @ Jul 6 2008, 18:11)  Visual C# express edition Попробую обязательно. Сейчас пытаюсь скрутить codebloks + Mingw +wxWidgets-2.8.8 при попытке откомпилировать библиотеку wx вылетает ошибка, где конкретно в чем не понятно. Я ж написал выше - если надо без проблем установить wx для разработки под windows - качайте wxPack... Ситуация под Linux противоположная - если надо без проблем подготовить wx для написания программ - проще скомпилировать из исходников... Цитата(Непомнящий Евгений @ Jul 6 2008, 16:37)  Не для eclipse, но все-же - Visual C# express edition. Довольно удобно и бесплатно. Дизайнер форм вполне на уровне. Лично я для написания гуевых утилит пользую его, вполне доволен. C# использует .Net Из этого проистекает как много плюсов, так и несколько минусов: Один вопрос: Visual C# express edition работает под Linux, и в нем можно создавать приложения, которые с минимальными затратами переносятся на все другие платформы?.. Нет? Спасибо, не надо нам таких _плюсиков_ когда зияет огромный минусищще!..
--------------------
|
|
|
|
|
Jul 6 2008, 18:33
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Скачал сейчас настраиваю, помогите настроить Linker какие библиотеки нужно прикрепить ? видео смотрел, не смог все рассмотреть все что он там вводит. ссылка на видео http://wxwidgets.info/videoВот еще нашел по настройке библиотек, http://wxwindows.org/docs/technote/vc_ide.htmможет кому пригодится  сейчас все компилится и работает. Правда размер exe файла 1,6мгб, а при запуске требует wxmsw28u_gcc.dll что нужно настроить(конечно если это возможно), что бы Программа не требовала всякие Dll ? и запускалась на другом компе?
|
|
|
|
|
Jul 6 2008, 21:34
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(sergey sva @ Jul 6 2008, 22:33)  Правда размер exe файла 1,6мгб, а при запуске требует wxmsw28u_gcc.dll что нужно настроить(конечно если это возможно), что бы Программа не требовала всякие Dll ? и запускалась на другом компе? Говорят, что если использовать компилятор от MS то код получается намного меньше, в wxPack есть всё чтобы и этот компилятор использовать. При создании проекта надо выбрать что использовать wx как статическую библиотеку и тогда не надо будет таскать dll-ки с программой... Что касаемо Linux, то там всё же so-шки (аналог dll) намного меньше по размерам и распространяются в пакетах... Цитата Почему кнопка при перетаскивании на форму растягивается на всю форму, все попытки ее сжать или передвинуть мышкой , не проходят. Такая ситуация не только с кнопкой но и со всеми остальными элементами. Сначала надо разместить wxPanel, а уже на неё все остальные элементы. А то что растягивается - это специальный механизм для предотвращения искажений при переносе между платформами и стилями оформления самой ОС... им не обязательно пользоваться, но всё же желательно освоить
--------------------
|
|
|
|
|
Jul 6 2008, 23:33
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
Цитата(AVR @ Jul 5 2008, 20:45)  Сообщите, пожалуйста, чем не понравилась. Сообщаю. Да просто лень осваивать  , а с первого тыка запустить не удалось  . Может быть, однажды, вдруг, когда-нибудь... Под виндой собираю wxWidgets в двух конфигурациях - msw-ansi-debug-static-2.8 и msw-ansi-release-static-2.8. Вот так: сырцы в c:\wxWidgets-2.8.7 Код #!/bin/sh # unrem needed #/cygdrive/c/wxWidgets-2.8.7/configure --prefix=/usr --with-msw --enable-gui --disable-shared --disable-monolithic --enable-debug --enable-debug_gdb --disable-optimise --with-opengl --enable-debug_cntxt --without-subdirs --with-odbc --enable-threads 2>&1|tee ../wxWidgets-2.8.7-configure-dbg.out #make 2>&1|tee ../wxWidgets-2.8.7-make-dbg.out #/cygdrive/c/wxWidgets-2.8.7/configure --prefix=/usr --with-msw --disable-shared --disable-monolithic --disable-debug --disable-debug_gdb --enable-optimise --with-opengl --disable-debug_cntxt --without-subdirs --with-odbc --enable-threads 2>&1|tee ../wxWidgets-2.8.7-configure.out #make 2>&1|tee ../wxWidgets-2.8.7-make.out #make install Конечно, проще скачать уже скомпиленное, но у нас инет дороговат. Так что пришлось научиться собирать.
|
|
|
|
|
Jul 7 2008, 05:16
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(AVR @ Jul 6 2008, 18:26)  Один вопрос: Visual C# express edition работает под Linux, и в нем можно создавать приложения, которые с минимальными затратами переносятся на все другие платформы?.. Нет? Спасибо, не надо нам таких _плюсиков_ когда зияет огромный минусищще!.. Mono вам в помощь. Или яву берите - переносится куда угодно. Или что-то типа руби/питона + те же wxWidgets. Просто (имхо) С++ под декстоп - это уже довольно неудобно по сравнению со всеми альтернативами. Но собственно товарищ вначале интересовался чем-то аля Borland, а он отнюдь не кроссплатформенный.
|
|
|
|
|
Jul 7 2008, 07:15
|
Знающий
   
Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045

|
Цитата(sergey sva @ Jul 6 2008, 21:33)  Правда размер exe файла 1,6мгб для уменьшения размера программы можно убрать всю отладочную информацию и символы при помощи strip, которая идёт в комплекте с mingw.
|
|
|
|
|
Jul 7 2008, 07:18
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 24-06-08
Пользователь №: 38 525

|
Цитата(sergey sva @ Jul 4 2008, 19:00)  Кто программировал LPC2468 с помощью WIGGLER и OpenOCD(arm-elf-gcc), какие впечатления? Сейчас хочу сваять схемку нужно много входов и выходом LPC2468 по ножкам как раз подходит. хотелось бы узнать какие грабли ожидать Посмотрите тему "Вопросы по OpenOCD" (http://electronix.ru/forum/index.php?showtopic=49523)
|
|
|
|
|
Jul 7 2008, 09:05
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
Сегодня нарисовал форму на листе бумаги, посмотрел на обилие контролов на ней и проникся, как будет нудно набивать все это пальцАми  + жара и лень, и все это в минус. Почитал доку на wxWidgets, наткнулся там на wxGlade - и понял, что это оно самое, что меня спасет  . Вкратце, позволяет набить форму стандартными виджетами, посмотреть как оно лежит и сгенерить код в 5-ти видах. Мне приглянулась идея составить классы панелей, экспортнуть в с++, ну а диалог или фрейм можно уже и самому. Хотя и не обязательно. Взял здесь.
|
|
|
|
|
Jul 7 2008, 14:24
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(AVR @ Jul 5 2008, 12:45)  Сообщите, пожалуйста, чем не понравилась. Вот мне, например, не понравился KDevelop и Qt ??? С ужасом себе это представляю.  Не понравился как - внешне???  Ибо более толково написанных "GUI и не только" библиотек с настолько широкими возможностями просто нет. wxWidgets - курит в сторонке... Цитата(AVR @ Jul 5 2008, 12:45)  и наоборот очень понравился CodeBlocks и особенно wxWidgets... CodeBlocks и мне очень нравится  , но даже то, что он написан на wxWidgets меня к этой библиотеке не притянуло  Цитата(AVR @ Jul 7 2008, 00:34)  Говорят, что если использовать компилятор от MS то код получается намного меньше...  "Сам не видел но видел тех кто видел..."  помните этот прикол?
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Jul 7 2008, 14:40
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(DRUID3 @ Jul 7 2008, 18:24)  ??? С ужасом себе это представляю.  Не понравился как - внешне???  Ибо более толково написанных "GUI и не только" библиотек с настолько широкими возможностями просто нет. wxWidgets - курит в сторонке... CodeBlocks и мне очень нравится  , но даже то, что он написан на wxWidgets меня к этой библиотеке не притянуло  "Сам не видел но видел тех кто видел..."  помните этот прикол? Что же вам понравилось , если не секрет ?
|
|
|
|
|
Jul 7 2008, 15:02
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(DRUID3 @ Jul 7 2008, 18:24)  ??? С ужасом себе это представляю.  Не понравился как - внешне???  Ибо более толково написанных "GUI и не только" библиотек с настолько широкими возможностями просто нет. wxWidgets - курит в сторонке... Требую прекращения разжигания холивара  Детальное сравнение по каждому пункту в студию! И вот ещё вопрос: что включили в LSB: Qt или GTK (который и использует wx под Linux)? В любом случае добавляя что-то в Qt - вы помогаете кормиться чужим дяденькам, а wx - то, что хочется развивать  ИМХО Ну может документация в Qt лучше, но я этого не заметил, может ещё что-то лучше, но кто сказал что инструмент надо выбирать по мелочным преимуществам, и наоборот шугаясь от мелких неудобств другого инструмента? Так можно и до windows-only докатиться: в студии такая-то рюшечка красивая, а там такая-то штучечка удобная... Сори...  Цитата CodeBlocks и мне очень нравится  , но даже то, что он написан на wxWidgets меня к этой библиотеке не притянуло  Ничем не могу помочь. Цитата  "Сам не видел но видел тех кто видел..."  помните этот прикол? Вас что-то не устраивает? Посетите официальный сайт wx там и найдёте размеры кода, выдаваемые различными компиляторами. И то что компилятор MSVC++ даёт меньше по объему код для windows обусловлено лишь некоторыми особенностями, которые GCC должен добавить в код. В Linux код получается заметно меньше при том же GCC по сравнению с GCC в windows. Не знаю чем это вызвано, я не вдавался в подробности...
--------------------
|
|
|
|
|
Jul 7 2008, 15:10
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(sergey sva @ Jul 7 2008, 17:40)  Что же вам понравилось , если не секрет ? Простота и четкость(в смысле хорошо описанная иерархия классов и строгая привязка к C++ хотя и с некоторыми послаблениями), широкие возможности(Qt не ограничивается только GUI), отличная документация (в том числе огромное количество информации на русском!) и обилие примеров! Я использую Free версию в связке с GCC, как среду - QDevelop (тоже очень нравится - никаких нареканий и никаких бесполезных излишеств). А относительно KDE - ну что тут сказать - установите себе KDE4 и посмотрите  (и само программирование в KDE, если по каким-то причинам нельзя применить Qt - о-о-очень сходно с этой библиотекой - было бы странно иначе  ) Цитата(AVR @ Jul 7 2008, 18:02)  Требую прекращения разжигания холивара  Детальное сравнение по каждому пункту в студию! А какие там вообще пункты? Qt намного более серьезный инструмент. Цитата(AVR @ Jul 7 2008, 18:02)  Вас что-то не устраивает? Посетите официальный сайт wx там и найдёте размеры кода, выдаваемые различными компиляторами. И то что компилятор MSVC++ даёт меньше по объему код для windows обусловлено лишь некоторыми особенностями, которые GCC должен добавить в код. Не пугайте прервокурскников  - GCC никаких особьенностей в код не добавляет - он просто подругому работает. И сколько я не смотрел холиваров даже с VS8 GCC идет впритык либо несколько опережает. Скажите мне пожалуйста - когда Вы последний раз отказывались от программного продукта потому что у него на пару процентов больший код (чем мог бы быть относительно некоего абстрактного компилятора) или он на 2% проигрыват в производительности(аналогу на PLIS  )? Но если вспомнить, что GCC это открытый инструмент подходящий от AVR с BlackFin до x86_64 позволяющий легко и непринужденно собирать написанный проект на смеси языков (например C, C++, Java( Java без Java-машины!!!) и Fortran) то остальные компиляторы можно смело бросать в топку. Опять же - документация GCC (именно компилятора а не аналог MSDN) и его открытость - это шанс Вашей команды в будущем (если применять его не только для "домашних поделок") сростись со своим инструментом. По эффективности это просто не сравномо ни с какими "попугаями" на диаграммах в глянцевых рекламных журнала которыми завлекают новичков - подсаживайся, мол, на наш инструмент и у тебя будет "самый длинный"  . Кстати этот пелевенский ньюанс Вы так и не уловили  - опять меня отослали " к тем кто видел тех кто видел"  ... Цитата(AVR @ Jul 7 2008, 18:02)  В Linux код получается заметно меньше при том же GCC по сравнению с GCC в windows. Такое сравнение вообще не корректно. Да и причем тут объем кода? Это не единственный (а принынешних технологиях так и наименее важный) из параметром исполняемого файла полученного тем или иным компилятором. Сравнивают обычно так - пишут те или иные инструкции (лучше наиболее часто встречающиеся в определенном роде деятельности - ибо C для DSP, C для API и C для GUI - это очень разные и практически не пересекающиеся вещи) затем их компилируют испытуемыми компиляторями, а потом дезассамблируют и пытаются найти явные тавтологии. Причем такой анализ - носит очень субъективный характер и зависит от склонностей и уровня "приглашенных аналитиков". А всякие там ссылки "авторитетные источники" - 100%-ная реклама...
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Jul 8 2008, 10:06
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Решил попробовать QT +QDevelop + minGw скачал установил, все вроде работает только, не всегда компиляция происходит без ошибок. первый раз компилю ,все без ошибо. Цитата Сборка (make)... C:/MinGW/bin/mingw32-make -f Makefile.Release mingw32-make[1]: Entering directory `C:/QDevelop_source/TEST' c:/Qt/4.4.0/bin/uic.exe ui/mainwindow.ui -o build/ui_mainwindow.h g++ -c -O2 -Wall -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include' -I'c:/Qt/4.4.0/include/ActiveQt' -I'build' -I'build' -I'../../Qt/4.4.0/mkspecs/default' -o build/mainwindowimpl.o src/mainwindowimpl.cpp g++ -c -O2 -Wall -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include' -I'c:/Qt/4.4.0/include/ActiveQt' -I'build' -I'build' -I'../../Qt/4.4.0/mkspecs/default' -o build/main.o src/main.cpp C:\Qt\4.4.0\bin/moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include' -I'c:/Qt/4.4.0/include/ActiveQt' -I'build' -I'build' -I'../../Qt/4.4.0/mkspecs/default' -D__GNUC__ -DWIN32 src/mainwindowimpl.h -o build/moc_mainwindowimpl.cpp g++ -c -O2 -Wall -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include' -I'c:/Qt/4.4.0/include/ActiveQt' -I'build' -I'build' -I'../../Qt/4.4.0/mkspecs/default' -o build/moc_mainwindowimpl.o build/moc_mainwindowimpl.cpp g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,console -mthreads -Wl -o bin/TEST.exe build/mainwindowimpl.o build/main.o build/moc_mainwindowimpl.o -L'c:/Qt/4.4.0/lib' -lQtGui4 -lQtCore4 mingw32-make[1]: Leaving directory `C:/QDevelop_source/TEST' ---------------------- Сборка завершена без ошибок---------------------- второй раз пересобираю вылетает 3 ошибки, хоть не чего и не менял. Цитата Обновить проект (qmake TEST.pro)... Очистить проект (make clean)... C:/MinGW/bin/mingw32-make -f Makefile.Release clean mingw32-make[1]: Entering directory `C:/QDevelop_source/TEST' rm build/moc_mainwindowimpl.cpp rm build/ui_mainwindow.h rm build/mainwindowimpl.o build/main.o build/moc_mainwindowimpl.o mingw32-make[1]: Leaving directory `C:/QDevelop_source/TEST' C:/MinGW/bin/mingw32-make -f Makefile.Debug clean mingw32-make[1]: Entering directory `C:/QDevelop_source/TEST' rm build/moc_mainwindowimpl.cpp rm build/ui_mainwindow.h rm: cannot remove `build/moc_mainwindowimpl.cpp': No such file or directory mingw32-make[1]: [compiler_moc_header_clean] Error 1 (ignored) rm build/mainwindowimpl.o build/main.o build/moc_mainwindowimpl.o rm: cannot remove `build/ui_mainwindow.h': No such file or directory mingw32-make[1]: [compiler_uic_clean] Error 1 (ignored) mingw32-make[1]: Leaving directory `C:/QDevelop_source/TEST' rm: cannot remove `build/mainwindowimpl.o': No such file or directory rm: cannot remove `build/main.o': No such file or directory rm: cannot remove `build/moc_mainwindowimpl.o': No such file or directory mingw32-make[1]: [clean] Error 1 (ignored) Сборка (make)... C:/MinGW/bin/mingw32-make -f Makefile.Release mingw32-make[1]: Entering directory `C:/QDevelop_source/TEST' c:/Qt/4.4.0/bin/uic.exe ui/mainwindow.ui -o build/ui_mainwindow.h g++ -c -O2 -Wall -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include' -I'c:/Qt/4.4.0/include/ActiveQt' -I'build' -I'build' -I'../../Qt/4.4.0/mkspecs/default' -o build/mainwindowimpl.o src/mainwindowimpl.cpp g++ -c -O2 -Wall -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include' -I'c:/Qt/4.4.0/include/ActiveQt' -I'build' -I'build' -I'../../Qt/4.4.0/mkspecs/default' -o build/main.o src/main.cpp C:\Qt\4.4.0\bin/moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include' -I'c:/Qt/4.4.0/include/ActiveQt' -I'build' -I'build' -I'../../Qt/4.4.0/mkspecs/default' -D__GNUC__ -DWIN32 src/mainwindowimpl.h -o build/moc_mainwindowimpl.cpp g++ -c -O2 -Wall -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtCore' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include/QtGui' -I'../../Qt/4.4.0/include' -I'c:/Qt/4.4.0/include/ActiveQt' -I'build' -I'build' -I'../../Qt/4.4.0/mkspecs/default' -o build/moc_mainwindowimpl.o build/moc_mainwindowimpl.cpp g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,console -mthreads -Wl -o bin/TEST.exe build/mainwindowimpl.o build/main.o build/moc_mainwindowimpl.o -L'c:/Qt/4.4.0/lib' -lQtGui4 -lQtCore4 mingw32-make[1]: Leaving directory `C:/QDevelop_source/TEST' ---------------------- Сборка завершена с 3 ошибками ---------------------- Еще такой вопрос: в WxWidget + Codeblocs событие добовляются двойным щелчком по кнопке (к примеру) , а сдесь форма редактируется в designer, как добавить событие(в код), к примеру нажатия кнопки?
|
|
|
|
|
Jul 8 2008, 12:03
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(sergey sva @ Jul 8 2008, 14:06)  Еще такой вопрос: в WxWidget + Codeblocs событие добовляются двойным щелчком по кнопке (к примеру) , а сдесь форма редактируется в designer, как добавить событие(в код), к примеру нажатия кнопки?  CodeBlocks также может создавать приложения и на базе QT4  + есть сторонние проги для дизайна окошечек с использованием WX, если по какой-то причине входящий в состав CodeBlocks редактор окон не понравился (конечно, есть и получше... просто удобно когда всё в одной среде, но Qt-шники же как-то живут)  В любом случае, какую бы Вы библиотеку/среду для кроссплатформенного программирования ни выбрали, это будет всегда правильное решение, мы линуксоиды/макосисты/... тоже люди и хотим софт
--------------------
|
|
|
|
|
Jul 8 2008, 12:27
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
Цитата(sergey sva @ Jul 8 2008, 21:06)  первый раз компилю ,все без ошибо. второй раз пересобираю вылетает 3 ошибки, хоть не чего и не менял. Да просто все - в первый раз проект еще не компилился - эрго, объектных файлов еще нет (*.o), правило clean не выполняется, выполняется только правило сборки - all. Во второй раз при _пересборке_ последовательность такая: сначала чистим (make clean), затем собираем (make, она же - здесь - make all). Так вот, если внимательно почитать второй лог, то что мы видим: выполняем make clean для конфигурации release - удаляем файлы в output dir; output dir сейчас равна $(корень проекта)/build/ удаляем: Код build/moc_mainwindowimpl.cpp build/ui_mainwindow.h build/mainwindowimpl.o build/main.o build/moc_mainwindowimpl.o выполняем make clean для конфигурации debug - удаляем файлы в output dir; output dir сейчас равна $(корень проекта)/build/ удаляем: Код build/moc_mainwindowimpl.cpp build/ui_mainwindow.h build/mainwindowimpl.o build/main.o build/moc_mainwindowimpl.o НО! все эти файлы _уже_были_удалены при первом проходе make clean (для версии release)!!! Сталбыть, решение - разнести выходные папки для релиза и дебага, или (сложнее, если makefile не ручной, а управляется оболочкой) - изменить имена файлов так, чтобы они были разные для редиза и дебага. Хотя первый вариант все-таки проще. И лучше.
|
|
|
|
|
Jul 8 2008, 13:20
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(AVR @ Jul 8 2008, 16:03)  CodeBlocks также может создавать приложения и на базе QT4  + есть сторонние проги для дизайна окошечек с использованием WX, если по какой-то причине входящий в состав CodeBlocks редактор окон не понравился (конечно, есть и получше... просто удобно когда всё в одной среде, но Qt-шники же как-то живут)  В любом случае, какую бы Вы библиотеку/среду для кроссплатформенного программирования ни выбрали, это будет всегда правильное решение, мы линуксоиды/макосисты/... тоже люди и хотим софт  code bloks мне понравился.  Вопрос Там при открытие нового проекта есть вкладка, для AVR , а как же к примеру msc51 + sdcc? просто создавать пустой проект, или нужно что то дополнительно устанавливать чтобы появилась вкладка для SDCC?
|
|
|
|
|
Jul 8 2008, 23:47
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(sergey sva @ Jul 8 2008, 22:20)  code bloks мне понравился.  Вопрос Там при открытие нового проекта есть вкладка, для AVR , а как же к примеру msc51 + sdcc? просто создавать пустой проект, или нужно что то дополнительно устанавливать чтобы появилась вкладка для SDCC? Я, например, создаю "консольное приложение" (Console Application), затем в меню Project->Build options и в Project->Properties выполняю необходимые настройки, касающиеся makefile. В качестве компилятора указываю GNU GCC. Даже не потому что им пользуюсь, а просто он по умолчанию стоит. Все пути к утилитам (компиляторы, линкер, и тп) указаны в makefile. Поэтому проблем нет. Данный подход используется при написании кода для AVR/ARM/x86.
--------------------
Выбор.
|
|
|
|
|
Jul 9 2008, 13:14
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(Leen @ Jul 8 2008, 17:27)  НО! все эти файлы _уже_были_удалены при первом проходе make clean (для версии release)!!! Сталбыть, решение - разнести выходные папки для релиза и дебага, или (сложнее, если makefile не ручной, а управляется оболочкой) - изменить имена файлов так, чтобы они были разные для редиза и дебага. ИМХО еще проще использовать rm -f и не заморачиваться ошибками удаления несуществующих файлов.
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
Jul 9 2008, 16:06
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(AVR @ Jul 8 2008, 15:03)  CodeBlocks также может создавать приложения и на базе QT4 QDevelop работает с проектами в их "исконноq" Qt-шной форме - хоть запускай из коммандной строки, а CodeBlocks создает свой проект. Это может привести к сложностям при работе комманды разработчиков или работе с чужим достаточно большим проектом... Цитата(AVR @ Jul 8 2008, 15:03)  ... просто удобно когда всё в одной среде, но Qt-шники же как-то живут)  ... Qt-шное GUI можно разрабатывать в редакторе формочек идущем с Qt по-умолчанию! Зачем плодить сущности? Причем не забываем, что само формочку можно подключать к коду динамически  .
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Jul 10 2008, 03:29
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343

|
Цитата(alx2 @ Jul 10 2008, 00:14)  ИМХО еще проще использовать rm -f и не заморачиваться ошибками удаления несуществующих файлов. ИМХО еще проще использовать rm -rf и не заморачиваться ошибками удаления и папок тоже  . И ваще - самописный makefile рулит. А то пока из одного проекта все настройки в другой перенесешь, запотеешь. А так один файлик скопировать и слегка его поправить.
|
|
|
|
|
Jul 10 2008, 13:33
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Всетаки как связать обработку событий с программой в QT,  (не чего не понимаю.)? Создаю новый проект в QDEVOLOP открываю форму в QT desinger , на форму можно набросать кнопок сохранить и откомпилить, запустить все работает. можно QT Desinger отредактировать сигналы слоты ,мышкой посоеденять кнопки текстэдиты выбрать действия для них, все работает, но мне не понятно как к примеру сменить надпись(любую) при нажатии на кнопку, и куда при этом писать код в Qt develop или qt designer ?
|
|
|
|
|
Jul 11 2008, 14:22
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Вот опять у меня проблема с настройками  . С макфилами только начинаю разбираться, поэтому вопрос может показаться детским, но все же не знаю что с этим делать. Компилятор SDCC вот mikefile который сегодня наваял, проблема ,пока model -small все нормально, но если меняю на --model-large (мне она нужна) выходит ошибка. Код CC=sdcc LINKFLAGS=-L --code-loc 0x0000 --code-size 0xFFFF --xram-loc 0x0000 --xram-size 0x0700 --model-small all: main.hex
main.rel: main.c $(CC) -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 ошибка: Код **** Build of configuration Default for project TESTSDCC ****
make all sdcc -c main.c sdcc -L --code-loc 0x0000 --code-size 0xFFFF --xram-loc 0x0000 --xram-size 0x0700 --model-large main.rel ?ASlink-Warning-Conflicting sdcc options: "-mmcs51 --model-small" in module "main" and "-mmcs51 --model-large" in module "_strlen". ?ASlink-Warning-Conflicting sdcc options: "-mmcs51 --model-small" in module "main" and "-mmcs51 --model-large" in module "_gptrget". ?ASlink-Warning-Conflicting sdcc options: "-mmcs51 --model-small" in module "main" and "-mmcs51 --model-large" in module "_startup". at 1: warning 119: don't know what to do with file '0x0000'. file extension unsupported make: *** [main.hex] Error 1 Команды компилятора: Код SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.8.2 #5 195 (Jun 27 2008) (MINGW32) Usage : sdcc [options] filename Options :-
General options: --help Display this help -v --version Display sdcc's version --verbose Trace calls to the preprocessor, assembler, and link er -V Execute verbosely. Show sub commands as they are ru n -d -D Define macro as in -Dmacro -I Add to the include (*.h) path, as in -Ipath -A -U -M Preprocessor option -W Pass through options to the pre-processor (p), assem bler (a) or linker (l) -S Compile only; do not assemble or link -c --compile-only Compile and assemble, but do not link -E --preprocessonly Preprocess only, do not compile --c1mode Act in c1 mode. The standard input is preprocessed code, the output is assembly code. -o Place the output into the given path resp. file --print-search-dirs display the directories in the compiler's search pat h --vc messages are compatible with Micro$oft visual studio
--use-stdout send errors to stdout instead of stderr --nostdlib Do not include the standard library directory in the search path --nostdinc Do not include the standard include directory in the search path --less-pedantic Disable some of the more pedantic warnings --disable-warning <nnnn> Disable specific warning --Werror Treat the warnings as errors --debug Enable debugging symbol output --cyclomatic Display complexity of compiled functions --std-c89 Use C89 standard only --std-sdcc89 Use C89 standard with SDCC extensions (default) --std-c99 Use C99 standard only (incomplete) --std-sdcc99 Use C99 standard with SDCC extensions (incomplete) --fdollars-in-identifiers Permit '$' as an identifier character --funsigned-char Make "char" unsigned by default
Code generation options: -m Set the port to use e.g. -mz80. -p Select port specific processor e.g. -mpic14 -p16f84 --model-large external data space is used --model-medium external paged data space is used --model-small internal data space is used (default) --stack-auto Stack automatic variables --xstack Use external stack --int-long-reent Use reentrant calls on the int and long support func tions --float-reent Use reentrant calls on the float support functions --main-return Issue a return after main() --xram-movc Use movc instead of movx to read xram (xdata) --callee-saves <func[,func,...]> Cause the called function to save registers insted of the caller --profile On supported ports, generate extra profiling informa tion --fommit-frame-pointer Leave out the frame pointer. --all-callee-saves callee will always save registers used --stack-probe insert call to function __stack_probe at each functi on prologue --no-xinit-opt don't memcpy initialized xram from code --no-c-code-in-asm don't include c-code as comments in the asm file --no-peep-comments don't include peephole optimizer comments --fverbose-asm include code generator comments --short-is-8bits Make short 8 bits (for old times sake) --codeseg <name> use this name for the code segment --constseg <name> use this name for the const segment
Optimization options: --nooverlay Disable overlaying leaf function auto variables --nogcse Disable the GCSE optimisation --nolabelopt Disable label optimisation --noinvariant Disable optimisation of invariants --noinduction Disable loop variable induction --nojtbound Don't generate boundary check for jump tables --noloopreverse Disable the loop reverse optimisation --no-peep Disable the peephole assembly file optimisation --no-reg-params On some ports, disable passing some parameters in re gisters --peep-asm Enable peephole optimization on inline assembly --peep-file <file> use this extra peephole file --opt-code-speed Optimize for code speed rather than size --opt-code-size Optimize for code size rather than speed
Internal debugging options: --dumpraw Dump the internal structure after the initial parse --dumpgcse --dumploop --dumpdeadcode --dumpliverange --dumpregpack --dumpregassign --dumptree dump front-end AST before generating iCode --dumpall Dump the internal structure at all stages --i-code-in-asm include i-code as comments in the asm file
Linker options: -l Include the given library in the link -L Add the next field to the library search path --lib-path <path> use this path to search for libraries --out-fmt-ihx Output in Intel hex format --out-fmt-s19 Output in S19 hex format --xram-loc <nnnn> External Ram start location --xram-size <nnnn> External Ram size --iram-size <nnnn> Internal Ram size --xstack-loc <nnnn> External Stack start location --code-loc <nnnn> Code Segment Location --code-size <nnnn> Code Segment size --stack-loc <nnnn> Stack pointer initial value --data-loc <nnnn> Direct data start location --idata-loc
Special options for the mcs51 port: --stack-size Tells the linker to allocate this space for stack --parms-in-bank1 use Bank1 for parameter passing --pack-iram Tells the linker to pack variables in internal ram ( default) --no-pack-iram Tells the linker not to pack variables in internal r am --acall-ajmp Use acall/ajmp instead of lcall/ljmp
Special options for the gbz80 port: -bo <num> use code bank <num> -ba <num> use data bank <num> --callee-saves-bc Force a called function to always save BC --codeseg <name> use this name for the code segment --constseg <name> use this name for the const segment --no-std-crt0 For the z80/gbz80 do not link default crt0.o
Special options for the z80 port: --callee-saves-bc Force a called function to always save BC --portmode= Determine PORT I/O mode (z80/z180) --asm= Define assembler name (rgbds/asxxxx/isas/z80asm) --codeseg <name> use this name for the code segment --constseg <name> use this name for the const segment --no-std-crt0 For the z80/gbz80 do not link default crt0.o
Special options for the ds390 port: --model-flat24 use the flat24 model for the ds390 (default) --stack-8bit use the 8bit stack for the ds390 (not supported yet)
--stack-size Tells the linker to allocate this space for stack --pack-iram Tells the linker to pack variables in internal ram ( default) --no-pack-iram Tells the linker not to pack variables in internal r am --stack-10bit use the 10bit stack for ds390 (default) --use-accelerator generate code for ds390 arithmetic accelerator --protect-sp-update will disable interrupts during ESP:SP updates --parms-in-bank1 use Bank1 for parameter passing
Special options for the pic16 port: --pstack-model= use stack model 'small' (default) or 'large' -y --extended enable Extended Instruction Set/Literal Offset Addre ssing mode --pno-banksel do not generate BANKSEL assembler directives --obanksel= set banksel optimization level (default=0 no) --denable-peeps explicit enable of peepholes --optimize-goto try to use (conditional) BRA instead of GOTO --optimize-cmp try to optimize some compares --optimize-df thoroughly analyze data flow (memory and time intens ive!) --asm= Use alternative assembler --mplab-comp enable compatibility mode for MPLAB utilities (MPASM /MPLINK) --link= Use alternative linker --preplace-udata-with= Place udata variables at another section: udata_ac s, udata_ovr, udata_shr --ivt-loc= Set address of interrupt vector table. --nodefaultlibs do not link default libraries when linking --use-crt= use <crt-o> run-time initialization module --no-crt do not link any default run-time initialization modu le --debug-xtra show more debug info in assembly output --debug-ralloc dump register allocator debug file *.d --pcode-verbose dump pcode related info --calltree dump call tree in .calltree file --gstack trace stack pointer push/pop to overflow
Special options for the pic14 port: --debug-xtra show more debug info in assembly output --no-pcode-opt disable (slightly faulty) optimization on pCode --stack-size sets the size if the argument passing stack (default : 16, minimum: 4) --udata-section-name set udata section name
Special options for the TININative port: --model-flat24 use the flat24 model for the ds390 (default) --stack-8bit use the 8bit stack for the ds390 (not supported yet)
--stack-size Tells the linker to allocate this space for stack --pack-iram Tells the linker to pack variables in internal ram ( default) --no-pack-iram Tells the linker not to pack variables in internal r am --stack-10bit use the 10bit stack for ds390 (default) --use-accelerator generate code for ds390 arithmetic accelerator --protect-sp-update will disable interrupts during ESP:SP updates --parms-in-bank1 use Bank1 for parameter passing --tini-libid <nnnn> LibraryID used in -mTININative
Special options for the ds400 port: --model-flat24 use the flat24 model for the ds400 (default) --stack-8bit use the 8bit stack for the ds400 (not supported yet)
--stack-size Tells the linker to allocate this space for stack --pack-iram Tells the linker to pack variables in internal ram ( default) --no-pack-iram Tells the linker not to pack variables in internal r am --stack-10bit use the 10bit stack for ds400 (default) --use-accelerator generate code for ds400 arithmetic accelerator --protect-sp-update will disable interrupts during ESP:SP updates --parms-in-bank1 use Bank1 for parameter passing
Special options for the hc08 port: --out-fmt-elf Output executable in ELF format
Сообщение отредактировал sergey sva - Jul 11 2008, 14:23
|
|
|
|
|
Jul 11 2008, 19:08
|

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

|
Цитата(sergey sva @ Jul 11 2008, 20:22)  Вот опять у меня проблема с настройками  . С макфилами только начинаю разбираться, поэтому вопрос может показаться детским, но все же не знаю что с этим делать. Компилятор SDCC вот mikefile который сегодня наваял, проблема ,пока model -small все нормально, но если меняю на --model-large (мне она нужна) выходит ошибка. Наверное --model-large надо указывать не только линкеру, но и компилятору. Напишите перед Код LINKFLAGS=-L --code-loc 0x0000 --code-size 0xFFFF --xram-loc 0x0000 --xram-size 0x0700 --model-large что-нибудь типа: Код CFLAGS= --model-large и потом: Код main.rel: main.c $(CC) -c $(CFLAGS) main.c
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jul 11 2008, 19:14
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(AHTOXA @ Jul 11 2008, 23:08)  Наверное --model-large надо указывать не только линкеру, но и компилятору. Напишите перед Код LINKFLAGS=-L --code-loc 0x0000 --code-size 0xFFFF --xram-loc 0x0000 --xram-size 0x0700 --model-large что-нибудь типа: Код CFLAGS= --model-large и потом: Код main.rel: main.c $(CC) -c $(CFLAGS) main.c Да в этом (CC) -c $(CFLAGS) main.c[/code] проблема была
Сообщение отредактировал sergey sva - Jul 11 2008, 19:14
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|