Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: компилятор
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Страницы: 1, 2
Непомнящий Евгений
Цитата(AVR @ Jul 6 2008, 18:26) *
Один вопрос: Visual C# express edition работает под Linux, и в нем можно создавать приложения, которые с минимальными затратами переносятся на все другие платформы?.. Нет? Спасибо, не надо нам таких _плюсиков_ когда зияет огромный минусищще!..


Mono вам в помощь.
Или яву берите - переносится куда угодно.
Или что-то типа руби/питона + те же wxWidgets. Просто (имхо) С++ под декстоп - это уже довольно неудобно по сравнению со всеми альтернативами.

Но собственно товарищ вначале интересовался чем-то аля Borland, а он отнюдь не кроссплатформенный.
msalov
Цитата(sergey sva @ Jul 6 2008, 21:33) *
Правда размер exe файла 1,6мгб

для уменьшения размера программы можно убрать всю отладочную информацию и символы при помощи strip, которая идёт в комплекте с mingw.
NikAn
Цитата(sergey sva @ Jul 4 2008, 19:00) *
Кто программировал LPC2468 с помощью WIGGLER и OpenOCD(arm-elf-gcc), какие впечатления?
Сейчас хочу сваять схемку нужно много входов и выходом LPC2468 по ножкам как раз подходит.
хотелось бы узнать какие грабли ожидать


Посмотрите тему "Вопросы по OpenOCD" (http://electronix.ru/forum/index.php?showtopic=49523)
Leen
Сегодня нарисовал форму на листе бумаги, посмотрел на обилие контролов на ней и проникся, как будет нудно набивать все это пальцАми sad.gif + жара и лень, и все это в минус.
Почитал доку на wxWidgets, наткнулся там на wxGlade - и понял, что это оно самое, что меня спасет biggrin.gif . Вкратце, позволяет набить форму стандартными виджетами, посмотреть как оно лежит и сгенерить код в 5-ти видах.
Мне приглянулась идея составить классы панелей, экспортнуть в с++, ну а диалог или фрейм можно уже и самому. Хотя и не обязательно. Взял здесь.
sergey sva
еще вопрос возник такой smile.gif , для баз данных ,есть какиенибудь библиотеки ? типа clientdataset или clientdatasoerce ? smile.gif
AVR
Цитата(sergey sva @ Jul 7 2008, 13:06) *
еще вопрос возник такой smile.gif , для баз данных ,есть какиенибудь библиотеки ? типа clientdataset или clientdatasoerce ? smile.gif
Цитата
Following is a detailed overview of how to use the wxWidgets ODBC classes - wxDb and wxDbTable and their associated functions.
Видимо есть там что-то... Советую качнуть доки на wx в формате chm - так проще искать всякие классы и их свойства и т.д.
DRUID3
Цитата(AVR @ Jul 5 2008, 12:45) *
Сообщите, пожалуйста, чем не понравилась. Вот мне, например, не понравился KDevelop и Qt

??? С ужасом себе это представляю. 07.gif Не понравился как - внешне??? 07.gif Ибо более толково написанных "GUI и не только" библиотек с настолько широкими возможностями просто нет.

wxWidgets - курит в сторонке...
Цитата(AVR @ Jul 5 2008, 12:45) *
и наоборот очень понравился CodeBlocks и особенно wxWidgets...

CodeBlocks и мне очень нравится biggrin.gif , но даже то, что он написан на wxWidgets меня к этой библиотеке не притянуло biggrin.gif

Цитата(AVR @ Jul 7 2008, 00:34) *
Говорят, что если использовать компилятор от MS то код получается намного меньше...

biggrin.gif "Сам не видел но видел тех кто видел..." biggrin.gif помните этот прикол?
sergey sva
Цитата(DRUID3 @ Jul 7 2008, 18:24) *
??? С ужасом себе это представляю. 07.gif Не понравился как - внешне??? 07.gif Ибо более толково написанных "GUI и не только" библиотек с настолько широкими возможностями просто нет.

wxWidgets - курит в сторонке...

CodeBlocks и мне очень нравится biggrin.gif , но даже то, что он написан на wxWidgets меня к этой библиотеке не притянуло biggrin.gif
biggrin.gif "Сам не видел но видел тех кто видел..." biggrin.gif помните этот прикол?


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

Простота и четкость(в смысле хорошо описанная иерархия классов и строгая привязка к C++ хотя и с некоторыми послаблениями), широкие возможности(Qt не ограничивается только GUI), отличная документация (в том числе огромное количество информации на русском!) и обилие примеров! Я использую Free версию в связке с GCC, как среду - QDevelop (тоже очень нравится - никаких нареканий и никаких бесполезных излишеств).

А относительно KDE - ну что тут сказать - установите себе KDE4 и посмотрите biggrin.gif (и само программирование в KDE, если по каким-то причинам нельзя применить Qt - о-о-очень сходно с этой библиотекой - было бы странно иначе biggrin.gif )

Цитата(AVR @ Jul 7 2008, 18:02) *
Требую прекращения разжигания холивара smile.gif Детальное сравнение по каждому пункту в студию!

А какие там вообще пункты? Qt намного более серьезный инструмент.
Цитата(AVR @ Jul 7 2008, 18:02) *
Вас что-то не устраивает? Посетите официальный сайт wx там и найдёте размеры кода, выдаваемые различными компиляторами. И то что компилятор MSVC++ даёт меньше по объему код для windows обусловлено лишь некоторыми особенностями, которые GCC должен добавить в код.

Не пугайте прервокурскников biggrin.gif - GCC никаких особьенностей в код не добавляет - он просто подругому работает. И сколько я не смотрел холиваров даже с VS8 GCC идет впритык либо несколько опережает. Скажите мне пожалуйста - когда Вы последний раз отказывались от программного продукта потому что у него на пару процентов больший код (чем мог бы быть относительно некоего абстрактного компилятора) или он на 2% проигрыват в производительности(аналогу на PLIS biggrin.gif )? Но если вспомнить, что GCC это открытый инструмент подходящий от AVR с BlackFin до x86_64 позволяющий легко и непринужденно собирать написанный проект на смеси языков (например C, C++, Java(Java без Java-машины!!!) и Fortran) то остальные компиляторы можно смело бросать в топку.

Опять же - документация GCC (именно компилятора а не аналог MSDN) и его открытость - это шанс Вашей команды в будущем (если применять его не только для "домашних поделок") сростись со своим инструментом. По эффективности это просто не сравномо ни с какими "попугаями" на диаграммах в глянцевых рекламных журнала которыми завлекают новичков - подсаживайся, мол, на наш инструмент и у тебя будет "самый длинный" wink.gif .

Кстати этот пелевенский ньюанс Вы так и не уловили biggrin.gif - опять меня отослали "к тем кто видел тех кто видел" wink.gif ...

Цитата(AVR @ Jul 7 2008, 18:02) *
В Linux код получается заметно меньше при том же GCC по сравнению с GCC в windows.

Такое сравнение вообще не корректно. Да и причем тут объем кода? Это не единственный (а принынешних технологиях так и наименее важный) из параметром исполняемого файла полученного тем или иным компилятором.

Сравнивают обычно так - пишут те или иные инструкции (лучше наиболее часто встречающиеся в определенном роде деятельности - ибо C для DSP, C для API и C для GUI - это очень разные и практически не пересекающиеся вещи) затем их компилируют испытуемыми компиляторями, а потом дезассамблируют и пытаются найти явные тавтологии. Причем такой анализ - носит очень субъективный характер и зависит от склонностей и уровня "приглашенных аналитиков". А всякие там ссылки "авторитетные источники" - 100%-ная реклама...
AVR
DRUID3 - ну Вы загнули: объяснять фанату GCC (мне) почему надо выбирать GCC biggrin.gif
Я согласен со всеми Вашими доводами и выберу GCC даже если его код будет на 10% больше и медленнее чем аналоги smile.gif
А то что в случае с wx код получается на _сотни_ Кб больше при использовании GCC всместо MSVC (<--- фтопку) это не из-за компилятора, а из-за премудростей библиотек, которые скорее всего можно побороть... Виноват, я неправильно выразился smile.gif Прошу прощение за доставленные неудобства...

ЗЫ Кстати, статически слинкованная с базовой функциональностью wx под Linux на GCC заняла у меня всего 550 К. Это я к тому что не всё так плохо у wx в плане объемов кода...
sergey sva
Решил попробовать 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, как добавить событие(в код), к примеру нажатия кнопки? smile.gif
AVR
Цитата(sergey sva @ Jul 8 2008, 14:06) *
Еще такой вопрос: в WxWidget + Codeblocs событие добовляются двойным щелчком по кнопке (к примеру) , а сдесь форма редактируется в designer, как добавить событие(в код), к примеру нажатия кнопки? smile.gif
CodeBlocks также может создавать приложения и на базе QT4 wink.gif + есть сторонние проги для дизайна окошечек с использованием WX, если по какой-то причине входящий в состав CodeBlocks редактор окон не понравился (конечно, есть и получше... просто удобно когда всё в одной среде, но Qt-шники же как-то живут) wink.gif
В любом случае, какую бы Вы библиотеку/среду для кроссплатформенного программирования ни выбрали, это будет всегда правильное решение, мы линуксоиды/макосисты/... тоже люди и хотим софт smile.gif
Leen
Цитата(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 не ручной, а управляется оболочкой) - изменить имена файлов так, чтобы они были разные для редиза и дебага.
Хотя первый вариант все-таки проще. И лучше.
sergey sva
Цитата(AVR @ Jul 8 2008, 16:03) *
CodeBlocks также может создавать приложения и на базе QT4 wink.gif + есть сторонние проги для дизайна окошечек с использованием WX, если по какой-то причине входящий в состав CodeBlocks редактор окон не понравился (конечно, есть и получше... просто удобно когда всё в одной среде, но Qt-шники же как-то живут) wink.gif
В любом случае, какую бы Вы библиотеку/среду для кроссплатформенного программирования ни выбрали, это будет всегда правильное решение, мы линуксоиды/макосисты/... тоже люди и хотим софт smile.gif


code bloks мне понравился.smile.gif Вопрос Там при открытие нового проекта есть вкладка, для AVR , а как же к примеру msc51 + sdcc? просто создавать пустой проект, или нужно что то дополнительно устанавливать чтобы появилась вкладка для SDCC?
haker_fox
Цитата(sergey sva @ Jul 8 2008, 22:20) *
code bloks мне понравился.smile.gif Вопрос Там при открытие нового проекта есть вкладка, для AVR , а как же к примеру msc51 + sdcc? просто создавать пустой проект, или нужно что то дополнительно устанавливать чтобы появилась вкладка для SDCC?

Я, например, создаю "консольное приложение" (Console Application), затем в меню Project->Build options и в Project->Properties выполняю необходимые настройки, касающиеся makefile. В качестве компилятора указываю GNU GCC. Даже не потому что им пользуюсь, а просто он по умолчанию стоит. Все пути к утилитам (компиляторы, линкер, и тп) указаны в makefile. Поэтому проблем нет.

Данный подход используется при написании кода для AVR/ARM/x86.
alx2
Цитата(Leen @ Jul 8 2008, 17:27) *
НО! все эти файлы _уже_были_удалены при первом проходе make clean (для версии release)!!!
Сталбыть, решение - разнести выходные папки для релиза и дебага, или (сложнее, если makefile не ручной, а управляется оболочкой) - изменить имена файлов так, чтобы они были разные для редиза и дебага.
ИМХО еще проще использовать rm -f и не заморачиваться ошибками удаления несуществующих файлов.
DRUID3
Цитата(AVR @ Jul 8 2008, 15:03) *
CodeBlocks также может создавать приложения и на базе QT4

QDevelop работает с проектами в их "исконноq" Qt-шной форме - хоть запускай из коммандной строки, а CodeBlocks создает свой проект. Это может привести к сложностям при работе комманды разработчиков или работе с чужим достаточно большим проектом...

Цитата(AVR @ Jul 8 2008, 15:03) *
... просто удобно когда всё в одной среде, но Qt-шники же как-то живут) wink.gif ...

Qt-шное GUI можно разрабатывать в редакторе формочек идущем с Qt по-умолчанию! Зачем плодить сущности? Причем не забываем, что само формочку можно подключать к коду динамически smile.gif .
Leen
Цитата(alx2 @ Jul 10 2008, 00:14) *
ИМХО еще проще использовать rm -f и не заморачиваться ошибками удаления несуществующих файлов.

ИМХО еще проще использовать rm -rf и не заморачиваться ошибками удаления и папок тоже smile.gif. И ваще - самописный makefile рулит. А то пока из одного проекта все настройки в другой перенесешь, запотеешь. А так один файлик скопировать и слегка его поправить.
sergey sva
Всетаки как связать обработку событий с программой в QT, smile.gif (не чего не понимаю.)?
Создаю новый проект в QDEVOLOP открываю форму в QT desinger , на форму можно набросать
кнопок сохранить и откомпилить, запустить все работает. можно QT Desinger отредактировать
сигналы слоты ,мышкой посоеденять кнопки текстэдиты выбрать действия для них, все работает,
но мне не понятно как к примеру сменить надпись(любую) при нажатии на кнопку, и куда при этом писать
код в Qt develop или qt designer ?
demiurg_spb
Поиск рулит....

http://clivecooper.co.uk/tutorial/index.html
http://ru.wikipedia.org/wiki/QDevelop
sergey sva
Вот опять у меня проблема с настройками smile.gif .
С макфилами только начинаю разбираться, поэтому вопрос может показаться детским, но все же
не знаю что с этим делать. sad.gif
Компилятор 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
AHTOXA
Цитата(sergey sva @ Jul 11 2008, 20:22) *
Вот опять у меня проблема с настройками smile.gif .
С макфилами только начинаю разбираться, поэтому вопрос может показаться детским, но все же
не знаю что с этим делать. sad.gif
Компилятор 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
sergey sva
Цитата(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] проблема была smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.