Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор компилятора Си
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Motion
Добрый день.

Решил изучать Си по книге "Язык прогрммирования С" Брайан Керниган, Деннис Ритчи. Для выполнения 1-го упражнения необходим редактор исходного кода, компилятор и т.д. То есть набор программ для работы. В книге написано консультироватся у специалистов по этому поводу. Учу Си, чтобы использывать для написания программ для ARM.

Вообще для ARM (LPC2000) использую среду Keil. Можно в ней же и писать и проверять примеры из книги или нужна отдельная программа?

Keil транслирует код Си в hex (машинный язык). А как же я тогда буду проверять примеры?

К примеру 1-ая программа выводит "Hello World!" в терминале/командной строке/на экране - то есть в Windows - там есть Exe-файл. То есть обычный компилятор ориентированый на Windows создаёт exe-файл, а Keil - hex.

Вообщем посоветуйте среду для програмирования по книге.
SSerge
Рекомендую старый, ещё ДОС-овский Турбо-С. Несоответствие стандарту С99 на первых порах не актуально, а научиться пользоваться можно за час. И никакие графические и прочие виндовые особенности не отвлекают от pure C, проще потом перейти к микроконтроллерам.
kurtis
Советую скачать Code::Blocks или Dev-C++. Оба являются IDE (что самое по себе удобно), но и включают в своей поставке свободный (читай бесплатный) компилятор языков Си и Си++ в достаточно актуальном состоянии (с высокой долей вероятности, будет поддерживать последние изменения в языке).

Еще есть бесплатная версия Microsoft Studio Express, я с ней не сталкивался, но вроде люди хвалят.

З.Ы. Если Вы только сели за изучения языка, то скорее всего, Вам будет полезен удобный отладчик (Debugger). Если мне не изменяет память то он есть как в составе Code::Blocks так и Dev-C++.
Quasar
Цитата(Владимир_КПИ @ Oct 1 2009, 21:58) *
Вообще для ARM (LPC2000) использую среду Keil. Можно в ней же и писать и проверять примеры из книги или нужна отдельная программа?


Можно Dev-C++ использовать для изучения, оно на gcc основано http://www.bloodshed.net/devcpp.html
zltigo
Цитата(SSerge @ Oct 1 2009, 22:32) *
Рекомендую старый, ещё ДОС-овский Турбо-С.

Упаси бог. Дивной кривизны и древности вещь. Жуткие диалекты, несоблюдение стандартов, жуткая обработка ошибок ...Любой свободно распространяемый компилятор,например, OpenWatcom. Делать консольные приложения и вперед.
Вообще вопрос о компиляторах поднимался многократно.



Цитата(kurtis @ Oct 1 2009, 22:47) *
З.Ы. Если Вы только сели за изучения языка, то скорее всего Вам будет полезен удобный отладчик (Debugger).

Трудно придумать что-нибудь столь-же вредное для ИЗУЧЕНИЯ языка, как отладчики.
Herz
Цитата(zltigo @ Oct 1 2009, 21:53) *
Трудно придумать что-нибудь столь-же вредное для ИЗУЧЕНИЯ языка, как отладчики.

Вы эту мысль (практически слово в слово) повторяете неоднократно. Позвольте ещё раз спросить, в чём же, по-Вашему, эта вредность?
zltigo
Цитата(Herz @ Oct 2 2009, 00:41) *
Позвольте ещё раз спросить...

Ну поскольку уже "неоднократно", то не думаю, что еще один раз чего-либо Вам прояснит sad.gif
Dog Pawlowa
Цитата(Владимир_КПИ @ Oct 1 2009, 20:58) *
К примеру 1-ая программа выводит "Hello World!" в терминале/командной строке/на экране - то есть в Windows - там есть Exe-файл. То есть обычный компилятор ориентированый на Windows создаёт exe-файл, а Keil - hex.

Вообщем посоветуйте среду для програмирования по книге.

В принципе среда ИАР в режиме отладки под симулятором выводит сообщения в окно терминала.
Потом не придется и компилятор менять.

А если сразу поставить оптимизацию повыше, то в режиме отладки не сильно и понятно будет smile.gif
haker_fox
Цитата(kurtis @ Oct 2 2009, 04:47) *
Советую скачать Code::Blocks

+1. IDE не такая уж и убогая, не смотря на бесплатность. Ее можно и с другими компиляторами использовать.
Motion
Цитата
В принципе среда ИАР в режиме отладки под симулятором выводит сообщения в окно терминала.
Потом не придется и компилятор менять.


А IDE uVision фирмы Keil подойдёт для обучения по этой книге? Там же есть встроеный С компилятор. Да и в этой же среде я буду писать под МК.

Но как там писать? Создал новый проэкт, отказался от выбора целевого устройства, добавил в проэкт заранее написаный в блокноте файл с программой с расширением .с.

Но кнопка "Транслировать" не активна.
Нажмите для просмотра прикрепленного файла

И даже если бы программа скопилировала исходных код - то как бы я проверил её? Как и где бы она мне вывела "Hello, World!"?
Hellper
изучать язык по книге K&R не самый эффективный и лучший вариант. данное издание позиционируется как справочник. советую закупить:
Прата С. Язык программирования С. Лекции и упражнения. Вильямс, 2006г. ISBN 5-8459-0986-4, 0-672-32696-5.
Какие ИДЕ и компиляторы использовать под различные ОС, рассказано в первой главе. Из личного опыта, под виндоус, без вариантов, Visual Studio. Дебагер прилагается.
haker_fox
Цитата(Владимир_КПИ @ Oct 2 2009, 15:51) *
А IDE uVision фирмы Keil подойдёт для обучения по этой книге? Там же есть встроеный С компилятор. Да и в этой же среде я буду писать под МК.

Не надо так пока делать. Разделим мух и котлеты. Со временем, когда будет определенный опыт, можете делать как угодно.
Цитата(Владимир_КПИ @ Oct 2 2009, 15:51) *
Но кнопка "Транслировать" не активна.

И хорошо, что не активна, эта среда не предназначена для создания исполняемых файлов под win32.
Цитата(Владимир_КПИ @ Oct 2 2009, 15:51) *
И даже если бы программа скопилировала исходных код - то как бы я проверил её? Как и где бы она мне вывела "Hello, World!"?

Вам уже выше рекомендовали CodeBlocks или OpenWatcom. Скачайте любой, установите и не мучайтесь.
Herz
Цитата(zltigo @ Oct 1 2009, 23:51) *
Ну поскольку уже "неоднократно", то не думаю, что еще один раз чего-либо Вам прояснит sad.gif

Да в том-то и дело, что эту неоднократно высказанную мысль Вы ниразу не подкрепили аргументами. Несмотря на мои неоднократные просьбы. Или я ошибаюсь?
Motion
Цитата
Вам уже выше рекомендовали CodeBlocks или OpenWatcom. Скачайте любой, установите и не мучайтесь.

Скачал и установил Code:Blocks. Создал новый проэкт, выбрал "Console application". Стёр стандартную программу и написал свою. Запустил - работает.

Цитата
Не надо так пока делать. Разделим мух и котлеты. Со временем, когда будет определенный опыт, можете делать как угодно.

Теперь по книге буду учить Си и делать всё в этой программе и проверять как консольное приложение. А когда пройду книгу - перейти на IDE uVision и писать программы в ней, но проверять на демоплате?
Сергей Борщ
Цитата(Владимир_КПИ @ Oct 2 2009, 13:24) *
Запустил - работает.
Off: "Если устройство заработало сразу - выключай и ищи ошибку!" smile.gif
haker_fox
Цитата(Владимир_КПИ @ Oct 2 2009, 19:24) *
Теперь по книге буду учить Си и делать всё в этой программе и проверять как консольное приложение. А когда пройду книгу - перейти на IDE uVision и писать программы в ней, но проверять на демоплате?

Сейчас Вы учите Си. Когда поймете, что знаете его достаточно, можно разбираться с кейлом. Ничего сложного там нет. Проверять на МК. Т.к. поведение периферии микроконтроллера не проверить на компьютере. Я не говорю о симуляторах.
Herz
Прошу прощения, уважаемый zltigo, Вы и на этот раз предпочли остаться голословным? Или ответом следует считать этот Ваш пост в соседней ветке? Не сомневаюсь, что Вы - ХОРОШИЙ программист. И опытный. Себя же, к примеру, могу пока отнести только к начинающим. Так вот, в процессе обучения внутрисхемный отладчик мне, скорее, помогает. Осознаю, что со временем надобность в нём сведётся к минимуму. Так, может, не так страшен чёрт?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.