|
0 / 0 / 0
Регистрация: 14.12.2018
Сообщений: 4
|
|
Не получается скомпилировать программу (Dev C++)14.12.2018, 00:43. Показов 5436. Ответов 44
0
|
|
| 14.12.2018, 00:43 | |
|
Ответы с готовыми решениями:
44
Не могу скомпилировать на dev c++, выдает ошибки не получается скомпилировать программу в Dev-C++ Не получается скомпилировать программу |
|
Вездепух
13233 / 6865 / 1827
Регистрация: 18.10.2014
Сообщений: 17,398
|
|||||||
| 16.11.2019, 07:00 | |||||||
|
То есть диагностических сообщения - это именно то, что в простонародье называется "ошибкой компиляции". В этом вся суть диагностических сообщений. В остальных случаях диагностические сообщения в языке С просто не требуются вообще, как ясно написано по ссылке. Абсолютно все ситуации, когда "программист знает, что делает", допускают написание кода, который одновременно и позволит программисту делать то, что ему нужно, и при этом не вызовет генерации диагностического сообщения. Это всегда возможно. Именно так это и будет выглядит у программиста, который "знает, что делает". Никаких проблем с этим ни у кого никогда не было. Если же код программиста порождает стандартное диагностическое сообщение - это сразу же автоматически означает, что он НЕ знает, что делает. А свойство не прекращать компиляцию после выдачи стандартного диагностического сообщения (и даже генерировать какие-то "выполнимые файлы") не имеет никакого отношения к ситуации "программист знает, что делает". Оно имеет прямое отношение к тому, что большинство реальных компиляторов существует в основном для очень приземленной и утилитарной цели: компиляции накопившихся за десятилетия тонн низкоквалифицированного гамнокода, написанного наспех на коленке. Программы эти еще кому-то нужны, а вот заниматься перелопачиванием этого кода никто не хочет. Проще подогнать под него "вседозволяющий" режим работы компилятора. Побочным эффектом этого, в сожалению, является то, что многие студенты не понимают, что очень многое из того, что "дозволено" во "вседозволяющем" режиме работы компилятора, не имеет вообще никакого отношения к стандартному языку С. Реалии современных реализаций таковы, что чтобы достичь какой-то осмысленной "градации ошибок" вам нужно специально запросить это у компилятора. Например, в компиляторе GCC это достигается флагом -pedantic-errors. Этот флаг еще не до конца отлажен, но его идея - именно в этом. В режиме -pedantic-errors компилятор рапортует языковые ошибки как "Error", а собственные фантазии-предупреждения - как "Warning".Без этого флага GCC будет рапортовать очень многие грубые нарушения требований и правил языка как "Warning". Причины такого поведения я уже указал выше.
0
|
|||||||
|
из племени тумба-юбма
|
|||||||||||
| 16.11.2019, 13:21 | |||||||||||
|
Интересная получается штука с этими расширениями в Dev-C++. Мне кажется что в данной IDE оптимальней работать с .сpp файлами. Вот я когда сменил расширение файла.с, компилятор начал ругаться на int в начале цикла.
0
|
|||||||||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
|
|||
| 16.11.2019, 13:22 | |||
|
В другой ситуации это было бы неспортивно, но раз уж вызвались - докажите свое высказывание.
0
|
|||
|
Вездепух
13233 / 6865 / 1827
Регистрация: 18.10.2014
Сообщений: 17,398
|
||||
| 16.11.2019, 19:16 | ||||
|
--- Мое высказывание противоречит лишь вашим личным домыслам на тему поведения компиляторов, которые не имеют ничего общего с реальностью. Вот эти вот "самой идее warning'ов", "подходу Си, который полагает..." - это все исключительно продукт вашего воображения, построенный на некоей самодельной доморощенной интерпретации поведения компиляторов, которая когда-то давно свернула куда-то не в ту сторону. Это буквальный аналог анекдота про Василия Ивановича и его диссертацию: "Безногий таракан не слышит". Вы, очевидно, только сейчас начинаете понимать, насколько неправильными являются эти ваши домыслы, но они уже успели "зацементироваться" и уходят с трудом.
0
|
||||
|
из племени тумба-юбма
|
||
| 16.11.2019, 20:15 | ||
|
1. если код написан на С, но имеет расширение срр, то к С отношения не имеет 2. если код написан на С ,то не имеет значения какое у него расширение, это все равно С Если вы имели ввиду первый вариант, тогда я вас никогда не пойму.
0
|
||
|
Вездепух
13233 / 6865 / 1827
Регистрация: 18.10.2014
Сообщений: 17,398
|
||
| 16.11.2019, 20:55 | ||
.cpp, это в традиционных реализациях автоматически приводит к тому, что для компиляции вашего кода будет использоваться компилятор С++. В рамках понимания этого факта, я имею в виду именно первый вариант. Язык С не является и некогда не являлся подмножеством языка С++. Большое количество программных конструкций, написанных на языке С, не будет даже компилироваться в рамках языка С++. Большое количество программных конструкций, написанных на языке С, будут иметь совершенно иную семантику в языке С++. Поэтому такая посылка как, "даже если я компилирую код компилятором С++ это все равно С" (ваш второй вариант) - это грубейше неправильно. С и С++ - очень сильно различающиеся языки. "Программирование на С внутри С++" - это бессмысленная профанация. Мы и здесь довольно часто здесь натыкаемся на примеры ляпсусов, допущенных начинающими программистами, проистекающих именно из такой профанации.
0
|
||
|
из племени тумба-юбма
|
||
| 16.11.2019, 21:36 | ||
0
|
||
| 16.11.2019, 22:03 | |
|
Не по теме: Припомнил, как лет 20 назад в первый раз FreeBSD устанавливал. Залил с CD, переписал конфиг ядра, выкинув всё лишнее, дописав всё нужное. Стал собирать - святые угодники! Варнинг на варнинге и варнингом погоняет! Целый час (или больше) пролюбовавшись на различного рода предупреждения, сильно удивляюсь, что всё вроде бы удачно получилось, перегружаюсь - и в правду работает. С тех пор сколько раз бздю ни собтрал, так и не знаю - то ли компиляторы паранойики выпускают, то ли в Беркли свою ось всё так же на коленке пишут левой пяткой... Но надо заметить, годами потом работает, пока детальки в компе от старости не посыпятся.
0
|
|
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
|
|||
| 16.11.2019, 23:31 | |||
|
Вот если бы я начал с высказывания, что существуют программы, которые нельзя написать без предупреждений компилятора, обязанность бы лежала на мне. Конечно, доказательства всеобщности обычно на порядки сложнее доказательств существования, так что требовать такое не принято. С другой стороны, кто ж виноват, что вы раскидываетесь подобными высказываниями.
0
|
|||
|
Вездепух
13233 / 6865 / 1827
Регистрация: 18.10.2014
Сообщений: 17,398
|
||||
| 17.11.2019, 01:56 | ||||
|
Мое высказывание - это лишь цитата из стандарта языка, ссылку на который я уже давал. При обнаружении нарушений синтаксических правили или ограничений, компилятор обязан выдать хотя бы одно диагностическое сообщение, но не обязан прерывать процесс трансляции. Однако (!) в такой ситуации стандарт языка более не признает данную программу "программой на языке С" и не дает никаких гарантий по поводу ее поведения. Поведение программы не определено. Как я говорил раньше, ситуация тут совершенно аналогична ситуации с неинициализированными переменными. Вы можете взахлеб нам доказывать, что в вашем любимом компиляторе все неинициализированные переменные гарантированно равны нулю (и это может быть чистой правдой), но с точки зрения языка С этот ваш "нуль" - это такой случайный мусор, как и любое другое непредсказуемое значение. Тоже самое относится к программам, в процессе компиляции которых было выдано стандартное диагностическое сообщение. Вы можете взахлеб рассказывать нам, что ваша программа "компилируется" и "работает", но с точки зрения языка С результат работы компилятора в таком случае - это не более чем случайный мусор. Так что ни о каком "обязательном прерывании" я никогда не говорил. Продолжение компиляции в такой ситуации может быть вполне полезно - для поиска других ошибок, например. Я всегда подчеркиваю, что речь идет в первую очередь о стандартных диагностических сообщениях. Т.е. сообщениях, выдача которых однозначно требуется стандартом языка. Это сообщения (еще раз) о нарушении синтаксических правил языка или о нарушении constraints. Все такие сообщения должны классифицироваться компилятором как "errors". Так как после такого сообщения поведение уже не определено, компилятор вправе делать что угодно: прерывать компиляцию, продолжать компиляцию, и т.д. В дополнение к этим сообщениям, компилятор имеет право выдавать не требуемые стандартом языка сообщения: 1) в ответ на корректный но "подозрительный" код, 2) в ответ на код, который не нарушает синтаксис и constraints, но явно порождает неопределенное поведение, 3) в ответ на код, который 100% корректен здесь, но может быть не портабелен, 4) и т.д. Вот это - то, ради чего создавались "warnings". Errors - обязательные, требуемые стандартом языка диагностические сообщения. Warnings - совершенно не обязательная отсебятина компилятора разной степени полезности. Традиционно, "errors" прерывали компиляцию, а "warnings" - нет. И это вполне разумное поведение, пока соблюдаются принципы, описанные выше. Однако потом все заверте... и компиляторы в определенный момент очутились перед гигантской кучей старинного кривого и косого нестандартного гамнокода, который все таки нужно как-то худо-бедно компилировать. Вот по этой причине и началось постепенное ползучее перетаскивание сообщений из класса "error" в класс "warning", результаты которого мы и наблюдаем сегодня. Нарушения стандарта языка в таком перетаскивании, кстати, нет. В стандарте нет никакого деления на "errors" и "warnings". Стандарт требует лишь выдачи диагностического сообщения в ответ на нарушение. А вот помнить, что современные компиляторы могут рапортовать грубые "errors" как невинные "warnings", копаться в этих сообщениях и разбираться, какие из них являются стандартными диагностическими сообщениями, а какие - отсебятиной компилятора - ваша задача. И сделать вы это можете только на основе знания стандарта языка. Сжалившись над теми, кто слабовато разбирается в стандарте языка, авторы некоторых компиляторов ввели ключи, вроде -pedantic-errors, призванные восстановить потерянное идеальное деление на "errors" и "warnings", как я его описал выше. Они работают, хоть и не всегда точно.Думайте об этом как о производителе автомобилей, который продает вам автомобиль. У этого производителя хорошая репутация, но она не может гарантировать вам, что в автомобиле нет дефектов. Тем не менее производитель не должен доказывать вам, что этих дефектов нет. Машина едет, фары включаются, компьютер не ругается - все в порядке. Производитель фактически "голословно" утверждает, что машина исправна. А вот если вы в процессе эксплуатации обнаружите в машине какие-то дефекты - это ваша задача, убедительно продемонстрировать наличие этих дефектов производителю. Точно так же и язык С. Это язык обладает хорошо установившейся репутацией. И я вам открытым текстом говорю, что при написании программ на языке С не нужно нарушать требований стандарта языка С (тавтология, однако). Если вы, поверив мне, обнаружите нарушения этого обещания - пожалуйста, приводите факты, мы их радостью детально рассмотрим. Если же вас не устраивает такое положение дел - ну так никто вас и не заставляет пользоваться языком С.
0
|
||||
|
12 / 10 / 2
Регистрация: 15.12.2017
Сообщений: 70
|
||||||||||||||||
| 17.11.2019, 02:44 | ||||||||||||||||
|
задам тупой вопрос, но вдруг прокатит.
стандарт си на русский переводили? Добавлено через 28 минут мама Стифлера, инициализацию int в начале блока цикла у меня компилятор съел и при с90 и с99. по переменным написано их можно объявлять в начале программного блока. блок это
если
как и чем вам поможет переменная в цикле???, покажите, ну очень интересно.
0
|
||||||||||||||||
|
Вездепух
13233 / 6865 / 1827
Регистрация: 18.10.2014
Сообщений: 17,398
|
|||||||||
| 17.11.2019, 08:36 | |||||||||
0
|
|||||||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
|
|||||
| 17.11.2019, 13:36 | |||||
|
0
|
|||||
|
12 / 10 / 2
Регистрация: 15.12.2017
Сообщений: 70
|
||
| 17.11.2019, 13:50 | ||
|
а железяка максимум носит отличие AMD & INTEL а во всех остальных случаях мы пишем, что то где нам "плевать" на компилятор (ну в смысле он один и только для этого чипа) т.е. как он скажет так и будет. а для тех кто "программист знает что делает" добро пожаловать в машинные инструкции.
0
|
||
|
Модератор
12844 / 7593 / 1766
Регистрация: 25.07.2009
Сообщений: 13,981
|
||
| 17.11.2019, 20:55 | ||
|
0
|
||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
|
||||
| 18.11.2019, 11:38 | ||||
|
На счет "гарантий" архитектуры я имел в виду действительно что-то вроде implementation defined: компилятор ругается, что "неопределенное поведение", но для данной железки - вполне определенное. . И еще раз напомню: пользоваться хаками нужно только в крайнем случае, когда выигрыш от них превышает трудность портирования и сопровождения кода. При этом хаки нужно как минимум документировать: почему это работает и почему не сделано по-другому.
0
|
||||
|
12 / 10 / 2
Регистрация: 15.12.2017
Сообщений: 70
|
||
| 18.11.2019, 14:36 | ||
особенно в этом разделе.а тек кто решил ардуинку покрутить явно не программисты, в большей массе, в прямом смысле (так копипасты)
0
|
||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
|
|
| 18.11.2019, 14:56 | |
|
apostata, тут в теме уже пошли совершенно экзотические и умозрительные случаи, либо максимально общие, так что все нормально
0
|
|
|
Вездепух
13233 / 6865 / 1827
Регистрация: 18.10.2014
Сообщений: 17,398
|
|||||
| 18.11.2019, 22:12 | |||||
|
(Я, разумеется, утрирую, но лишь для того, чтобы подчеркнуть чудовищную бессмысленность заявления "программы пишутся под конкретную железяку".) Напомню, что здесь речь идет не о каких-то туманных "гарантиях конкретной железяки", а о существенно более узком и существенно более четко очерченном конкретном вопросе: написание ошибочного с точки зрения языка кода. Ошибочного именно в том смысле, что код нарушает синтаксические правила языка или его ограничения (constraints). К "гарантиям железяки" это все не имеет никакого отношения. При чем они здесь вообще? Типовой "программист от сохи" научился уважать синтаксические правила языка только потому, что компилятор его лупит кувалдой по башке за нарушение этих правил. А вот уважать constraints его компилятор таким способом научил не до конца и не все. Вот и все объяснение. Никакие "гарантии железяки" к этому вопросу не имеют. И, еще раз, в языке С нет никакой разницы между нарушением синтаксических правила языка и нарушением constraints. Никогда и нигде в языке С нет необходимости для нарушения constraints, какие бы "железяки" вы там ни программировали. Нарушение constraints в С коде - это всегда криворукость нерадивого кодера. Независимо от степени "хаковости", никогда и нигде в языке С не потребуется написания некорректного кода. Поэтому "хаки" к этой теме никакого отношения не имеют.
0
|
|||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
|
|||||
| 19.11.2019, 09:16 | |||||
|
0
|
|||||
| 19.11.2019, 09:16 | |
|
Не получается скомпилировать программу из исходников в SharpDevelop Emacs - Не получается даже скомпилировать программу
clang не получается скомпилировать программу из нескольких cpp файлов в биткод для LLVM Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|