gcc гайд (ищу)

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Привет all.

<нытьё>Общее впечатление: ни один пример из выдачи в поиске - не работает. Так что RTFM и JFGI как-то не возымели эффекта.</нытьё>

Но как-то же на нём пишут, не? Возникает резонное предположение, что я чего-то не знаю. Так что знающие - колитесь как вливались. Желательно по шагам, для домохозяек. Допустим: имеем гипотетическую Windows (XP, 7 или 10), на экране гипотетическая заставка (Безмятежность.bmp) и "Пуск". Или "Start", неважно. Куда нажать чтоб поднять бабла чтобы проги с примерами делали на моей машине то что предполагалось их создателями, а не ругань типа "error: macro "FD_ISSET" requires 2 arguments, but only 1 given"?

Интересует: win32 .exe приложение, умеющее определять ввод с клавиатуры (решается в FPC while not keypressed), цветной текст в консоли (решается uses crt; textcolor(5);), запись в файлы (assign(f,имя);rewrite(f);), асинхронный неблокирующий ввод-вывод с сериал/bluetooth. На ардуине элементарно, if(Serial.(available)). А на писюке? Вопрос не конкретно про неблокирующий сериал, а про gcc вообще.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

available в скобках оказалось, а не перед ними. Ну да не важно, я думаю суть™, мякотка вопроса ясна. Админам можно сказать чтобы подправили, дабы народ не путать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015
wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Voodoo Doll пишет:

Но как-то же на нём пишут, не? .....

Допустим: имеем гипотетическую Windows (XP, 7 или 10)

Вот тут ошибка.  ;)))) GCC это оперсорс компилятор. Какое отношение W7,8,10 имеет к нему? ;))))

По-любому работа начинается с установки minGW, которая неким образом переделывает винды в Линух... уже смешно? Тебе точно это ннада?

А так - ставь среду типа VS Code с аддонами под GCC, там и хелп встроенный и навигация по инклюдам и всё, что радует. Таких - до жопы, и Нетбеанс и Эклипс... но Микрософт VS Code с правильным плагином тебе проще будет.

Для интерфейсов - просто ураган - Qt Creator!!! Чуть не забыл про него, а он супер-пупер-мега-круть!!

 

Штоп писать в редакторе, собирать мейком и срать на всё, нужно компилятор и его ошибки знать наизусть, а оно тебе ннада?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Спасибо за ключевые слова. Изучу и вернусь.

Про windows спрашиваю т. к. предполагаю аналогию с FPC. Вообще меня бы устроили ответы и от его сообщества, но бох их там знает на чём русскоговорящие программисты сейчас пишут. Вроде есть сайты и по Pas, и по C, и по асму. Мне-то всё равно, я программы пишу методом "взять абзац от туда, вставить сюда, написать свои названия пунктов меню". Типа Save ass...

negavoid
Offline
Зарегистрирован: 09.07.2016

Voodoo Doll пишет:
приложение, умеющее определять ввод с клавиатуры (решается в FPC while not keypressed), цветной текст в консоли (решается uses crt; textcolor(5);), запись в файлы (assign(f,имя);rewrite(f);), асинхронный неблокирующий ввод-вывод с сериал/bluetooth

никогда не будет ругаться на FD_ISSET, потому как нефиг такому приложению обращаться к сокетам. :)

Всё паскалевское, а вопрос про gcc :) C GCC так: устанавливаете mingw. Запускаете из его папки его шелл mingw-w64.bat. Переходите в вашу папку d: && cd \dev\gcc\hello1, делаете gcc hello.c. Если хочется красивый редактор, добавляете VS Code. Можно и в паскале, качаете Lazarus, пишете {$APPTYPE CONSOLE} begin и вперёд, ассайн(), рерайт(), ctrl+f9, получаем экзешник.

Возможно, неплохим решением для этой задачи был бы c#? Бесплатная visual studio (или тот же vs code), куча компонентов, легко работать с портами. Можно обойтись и без студии, на всех компах с виндой, начиная с 7 вроде, установлен компилятор шарпа, вместе с .нетом, в папочке \windows\microsoft .net\framework\3.5\csc.exe. Можно скомпилировать по-быстрому что-нибудь на любой машине.

using System;
using System.IO.Ports;

namespace test
{
    class program1
    {
		public static SerialPort _serialPort;

		static void Main(string[] args)
		{
			try
			{
				_serialPort = new SerialPort("COM14", 9600);
				_serialPort.Open();
				_serialPort.Write("AT^RESET\r\n");
				string indata = _serialPort.ReadExisting();
				Console.WriteLine(indata);
				_serialPort.Close();
			}
			catch
			{
				Console.WriteLine("error");
			}

		}
    }
}

 

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Присоединюся к предыдущему аратору, под Виндой, если ннада построить быстрый ГУЙ, то C# рулит.  А если надо без матов - то распоследняя Дельфи, комьюнити версия (бисплатная) у ей  уже в продаже (ой, в раздаче).  :) 

GCC для Отца Вындоуза - уж больно специфическое решение, мозгодробительное, как Microsoft С++