Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: CodeBlocks не может найти gets Что сделать, чтобы можно было его использовать?  (Прочитано 6468 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
WhiteLedy,
клиника. давно в блондинку перекрасилась?

Ни писать IDE ни разбираться в её коде не надо. Надо понимать как она работает. для этого надо знать процессы которые стоят за красивой обёрткой из трёх кнопочек которые ты типа "знаешь".

А за обёрткой прячется обычный gcc/g++ (или иной компилятор). И в звасисмости от настроек проекта в IDE она вызывает этот компилятор с разными параметрами, в нужной последовательности. Вот именно минимум этих параметров и надо знать. Надо знать как руками всё это вызывавть чтобы получить результат как у IDE. Тогда будет понимание почему от warning'а не собирается программа.

Более того ты вообще не отделяешь свой код от компилятора и IDE. А виновата сразу IDE. Да ей вообще наплевать на твой код. Она делает что сказано. А говоришь ты ей криво и получаешь закономерны  результат. У тебя получились котлеты не то что бы с мухами а с конями всадниками и их саблями.

Ну ты не стесняйся, покажи нам своего "препода". Дай ссылку на его профиль на сайте универа. Поржём. А пока прими на веру что он не адекват.

P.S. когда обращаешься за помощью надо сидеть, слушать что говорят, мотать на ус и не вякать "да мне это не надо". Если "не надо" иди похлопай глазками перед одногруппником он тебе всё сделает и не колупай мозг своей терминологией людям.
« Последнее редактирование: 08 Мая 2013, 06:59:14 от Yurror »

Оффлайн WhiteLedy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 88
  • https://github.com/WhiteLaedyAnn
    • Просмотр профиля
WhiteLedy,
клиника. давно в блондинку перекрасилась?

Ни писать IDE ни разбираться в её коде не надо. Надо понимать как она работает. для этого надо знать процессы которые стоят за красивой обёрткой из трёх кнопочек которые ты типа "знаешь".

А за обёрткой прячется обычный gcc/g++ (или иной компилятор). И в звасисмости от настроек проекта в IDE она вызывает этот компилятор с разными параметрами, в нужной последовательности. Вот именно минимум этих параметров и надо знать. Надо знать как руками всё это вызывавть чтобы получить результат как у IDE. Тогда будет понимание почему от warning'а не собирается программа.

Более того ты вообще не отделяешь свой код от компилятора и IDE. А виновата сразу IDE. Да ей вообще наплевать на твой код. Она делает что сказано. А говоришь ты ей криво и получаешь закономерны  результат. У тебя получились котлеты не то что бы с мухами а с конями всадниками и их саблями.

Ну ты не стесняйся, покажи нам своего "препода". Дай ссылку на его профиль на сайте универа. Поржём. А пока прими на веру что он не адекват.

P.S. когда обращаешься за помощью надо сидеть, слушать что говорят, мотать на ус и не вякать "да мне это не надо". Если "не надо" иди похлопай глазками перед одногруппником он тебе всё сделает и не колупай мозг своей терминологией людям.

Я всегда была и буду шатенкой пока не состарюсь если меня раньше не пришьют.
И я знаю что такое компилятор а вот знаешь ли ты прогу IDA -сомневаюсь. Шутки надо понимать. И я настраивала свой иде на использование OpenGL как ты говоришь "ручками" но как настроить на то, чтобы он не выводил этот ворнинг я не знаю, и хотела чтобы мне это объяснили, а не тыкали в то, что именно это надо сделать. И я компилю код иногда и из терминала, так что не надо грязи.
Кроме того, мне пока ничего не объяснили, только намекают на то что мой препод дно. А смеяться будешь над своим профилем. И никогда в жизни не поверю в то что мой учитель не лучший в округе, мои одноклассники и вуз где он учится тоже считают что он гений И если весь этот поклёп на него из-за того что он сказал использовать гетс то он разрешил его заменить альтернативными функциями, раз на то уж пошло И если моя терминология тебя не устраивает можно это спокойно сказать без подколов в чей-либо адрес.
И да, я делаю гораздо более сложную прогу чем мои одноклассники, могу конечно их побить чтобы они мне что-нибудь сделали но это противозаконно

Пользователь решил продолжить мысль 08 Мая 2013, 15:20:50:
Всё, я сама нашла эти настройки там даже прописывать ничего не надо
« Последнее редактирование: 08 Мая 2013, 15:36:01 от WhiteLedy »
*/ ///______I BANGBANG   
) . /_(_)             
/__/

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
WhiteLedy, на самом деле всем просто лень пытаться воспроизвести проблему непосредственно в CodeBlocks. Отчасти потому, что эта среда редко используется теми, кто программированием зарабатывает на хлеб с икоркой.

Проблема в том, что CodeBlocks по умолчанию добавляет флаг -Werror, из-за которого любое предупреждение прерывает сборку. Более того, я не вижу в BuildSettings проекта флага -Werror и вижу лишь -w, который вообще отключит все варнинги и хоть и устранит проблему, но не даст компилятору предупреждать о логических ошибках. Не поделитесь, как вы решили проблему?

Кстати, если использовать QtCreator, то и автоматизма будет больше, и на форумах ответят с большей вероятностью. К сожалению, поддержки проектов CodeBlocks и графического интерфейса для настроек проекта там нет.

Оффлайн WhiteLedy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 88
  • https://github.com/WhiteLaedyAnn
    • Просмотр профиля
quiet_readonly, щто? (((То-то у меня код без ошибок Разьве -в вообщ всё отключает? Ща проверю... У меня просто всё на английском я не оч вчитываюсь

Пользователь решил продолжить мысль 08 Мая 2013, 16:57:53:
Да, действительно все ошибки спиливает :( Сняла галочку - полетела душа в ад
« Последнее редактирование: 08 Мая 2013, 16:58:56 от WhiteLedy »
*/ ///______I BANGBANG   
) . /_(_)             
/__/

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Оказывается, есть ещё один способ - отключение отдельных предупреждений. В Build Settings, на вкладке Other Options достаточно добавить
-Wno-deprecated-declarationsДля остальных ненужных предупреждений достаточно вставить no- после -W для флага, который отвечает за это предупреждение. Флаг пишется в логе:
main.cpp|11|предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]Предупреждение включается флагом -Wwrite-strings и соответственно выключается -Wno-write-strings.

Оффлайн WhiteLedy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 88
  • https://github.com/WhiteLaedyAnn
    • Просмотр профиля
*/ ///______I BANGBANG   
) . /_(_)             
/__/

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
WhiteLedy,
Вот можешь же, если немного потролить 8)

0) IDA знаю, только при чем здесь вообще это?

1) молодец что нашла где опции, возьми с полки пирожок

2) твоя терминология просто неправильная. поэтому и шпыянют. из лучших побуждений. чтобы пошла и разобралась как оно по правде называется. победить весь мир и научить его своей терминологии ты не сможешь, увы.

3) на счёт спокойно. ты же всё в штыки воспринимаешь. поэтому и тролят. прикольно же. все спокойны кроме тебя =)

4) про препода вывод делался исходя из того что ты сказала. а именно он нам рассказал про gets (смысл вообще её давать ученикам нет никакого, кроме как учить ломать код дырявых приложений) и запретил менять на что-либо еще (не верный подход в обучении). это уже последним постом ты прояснила ситуацию. оказывается всё можно. ок. уже не интересно. можно не давать ссылку на его профиль. только в следующий раз выражайся чётче.

5) на счёт того что тебя надо было выяснить, сравни "CodeBlocks не может найти gets Что сделать, чтобы можно было его использовать?" и "как настроить на то, чтобы он не выводил этот ворнинг я не знаю, и хотела чтобы мне это объяснили"
Мне стоит привести ссылку на статью "Как правильно задавать вопросы" или ты сама погуглишь и прочитаешь? Это еще одна причина почему тебя тролят.

Любые варнинги это потенциальные ошибки. Почему это сделали варнингами почитайте. Отключать их не стоит. Надо писать так чтобы их не было (ага с ключиками -Wall -Wextra -ansi -pedantic). Если компилятор поливает матом gets() значит так оно и надо. Не стоит его использовать.
Если компилятор говорит что у тебя константные строки передаются функции которая их собирается менять значит в рантайме ты словишь SEGFAULT.
И не надо ляля про то что "я только учусь". Учитесь делать правильно.

P.S. слепая вера во что угодно (в том числе в своего препода) до добра не доводит. сейчас он, вероятно, больше тебя знает но придёт время и ты сильно усомнишься =) я тут уже давал ссылочку на классику кун-фу.

Оффлайн WhiteLedy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 88
  • https://github.com/WhiteLaedyAnn
    • Просмотр профиля
quiet_readonly,
-Werror гениален

Пользователь решил продолжить мысль 08 Мая 2013, 17:48:24:
WhiteLedy,

Любые варнинги это потенциальные ошибки. Почему это сделали варнингами почитайте. Отключать их не стоит. Надо писать так чтобы их не было (ага с ключиками -Wall -Wextra -ansi -pedantic). Если компилятор поливает матом gets() значит так оно и надо. Не стоит его использовать.
Если компилятор говорит что у тебя константные строки передаются функции которая их собирается менять значит в рантайме ты словишь SEGFAULT.
И не надо ляля про то что "я только учусь". Учитесь делать правильно.

P.S. слепая вера во что угодно (в том числе в своего препода) до добра не доводит. сейчас он, вероятно, больше тебя знает но придёт время и ты сильно усомнишься =) я тут уже давал ссылочку на классику кун-фу.

"Шпыняешь" только ты и это я в штыки и воспринимаю ну да ладно ок у всех свои тараканы
вот наконец после 20 этак строчек теста отличная инфа Ура,пасыбо! Правда твои ключи удвоили количество ошибок в раз 10 эдак а не перевели их в предупреждения И у меня по назначению используется гетс segmentation fault от того что он там делает точно не случится  Я не говорила что ещё учусь #2()_()
« Последнее редактирование: 08 Мая 2013, 17:49:36 от WhiteLedy »
*/ ///______I BANGBANG   
) . /_(_)             
/__/

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Учиться надо всегда =)

Случится =) обязательно случится. именно поэтому она и deprecated (блин, ну говорил же что надо почитать, а они опять ни черта на ус не мотают)
Ладно, поясню для особо ленивых: gets() не имеет внутреннего ограничения по размеру буфера. А твой буфер(строка приёмник) таки ограничен. Отсюда народная мудрость: на любой буфер размером в N байт найдётся строка в N+M байт, что в лучшем случае вызовет SEGFAULT, в худшем - выполнение произвольного кода. В еще худшем случае это будет сетевое приложение и тут уже писец батенька.
Не получится у тебя при всём желании правильно использовать gets() косяк не в твоей программе, косяк в библиотечной функции, в её архитектуре, он не исправляется, лечится только запретом использования.

Нормальные преподы это на уроках рассказывают и говорят "не делайте так дети".
Я же писал что её можно использовать только для изучения методов взлома приложений.

Оффлайн WhiteLedy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 88
  • https://github.com/WhiteLaedyAnn
    • Просмотр профиля

Не получится у тебя при всём желании правильно использовать gets() косяк не в твоей программе, косяк в библиотечной функции, в её архитектуре, он не исправляется, лечится только запретом использования.

Нормальные преподы это на уроках рассказывают и говорят "не делайте так дети".
Я же писал что её можно использовать только для изучения методов взлома приложений.
:o Не писал. Во всяком случае в этой теме. А у меня вообще шикарно проблема решена)-->
 -Wno-deprecated-declarations
-Wno-write-strings
-Wno-deprecated-declarations
-fsyntax-only
-Wno-format
« Последнее редактирование: 08 Мая 2013, 18:08:04 от WhiteLedy »
*/ ///______I BANGBANG   
) . /_(_)             
/__/

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
...
 :o Не писал. Во всяком случае в этой теме.
...
Значит поток моего сознания запнулся обо что-то более страшное

...
 А у меня вообще шикарно проблема решена )-->
Не решена, так завозюкана черной краской.
http://www.rsdn.ru/article/cpp/XXtraps64bit.xml тут рассказывают как на ровном месте поиметь проблемы.
Весьма такие не надуманные проблемы ибо дома на 32бит все будет работать а в универе/школе/курсах на 64бит машине будет падать. Вот батхерда то будет.

Оффлайн WhiteLedy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 88
  • https://github.com/WhiteLaedyAnn
    • Просмотр профиля
...
 :o Не писал. Во всяком случае в этой теме.
...
Значит поток моего сознания запнулся обо что-то более страшное

...
 А у меня вообще шикарно проблема решена )-->
Не решена, так завозюкана черной краской.
http://www.rsdn.ru/article/cpp/XXtraps64bit.xml тут рассказывают как на ровном месте поиметь проблемы.
Весьма такие не надуманные проблемы ибо дома на 32бит все будет работать а в универе/школе/курсах на 64бит машине будет падать. Вот батхерда то будет.
Бугага я си++ не знаю только чистый так что мне не особо понятно хотя интересная инфа да
*/ ///______I BANGBANG   
) . /_(_)             
/__/

Оффлайн astrobeglec

  • Активист
  • *
  • Сообщений: 838
  • Самая тяжелая ноша - пророк в извращенном мире...
    • Просмотр профиля
Зашибись. WhiteLedy, кстати почему Ваш преподаватель настаивает именно на использовании СВ?

Я вернулся...

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля

Не получится у тебя при всём желании правильно использовать gets() косяк не в твоей программе, косяк в библиотечной функции, в её архитектуре, он не исправляется, лечится только запретом использования.

Нормальные преподы это на уроках рассказывают и говорят "не делайте так дети".
Я же писал что её можно использовать только для изучения методов взлома приложений.
:o Не писал. Во всяком случае в этой теме. А у меня вообще шикарно проблема решена)-->
 -Wno-deprecated-declarations
-Wno-write-strings
-Wno-deprecated-declarations
-fsyntax-only
-Wno-format

Формат компилятор проверяет не зря, из-за ошибки в нём приложение почти наверняка упадёт или будет работать неверно, исключения редки. Так что -Wno-format стоит убрать, и в крайнем случае делать каст вроде (int)unsignedVariable.

Пользователь решил продолжить мысль 08 Мая 2013, 19:58:54:
http://www.rsdn.ru/article/cpp/XXtraps64bit.xml тут рассказывают как на ровном месте поиметь проблемы.
Весьма такие не надуманные проблемы ибо дома на 32бит все будет работать а в универе/школе/курсах на 64бит машине будет падать. Вот батхерда то будет.
Давать ссылку на список проблем компилятора Microsoft на форуме ubuntu - это успех.
« Последнее редактирование: 08 Мая 2013, 19:58:54 от quiet_readonly »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
...
http://www.rsdn.ru/article/cpp/XXtraps64bit.xml тут рассказывают как на ровном месте поиметь проблемы.
Весьма такие не надуманные проблемы ибо дома на 32бит все будет работать а в универе/школе/курсах на 64бит машине будет падать. Вот батхерда то будет.
Давать ссылку на список проблем компилятора Microsoft на форуме ubuntu - это успех.
Ага, давай, рассказывай как космические корабли бороздят большой театр (с)
чукча не читатель, чукча писатель (с)

там слегка о другом, и виндовые примеры там максимум пару процентов занимают остальные касяки любят клепать на всех платформах
но ты конечно продолжай себя утешать =)

Нет, ты меня зацепил. Сказал А, говри Б. Где конкретно там про проблеммы именно Microsoft компилятора. Цитату в студию. Я думал склерозом страдать начал, перепроверил, перечитал статью. Да нет, всё ОК. Школота пургу несет на форумах. Надо бы носом ткнуть чтобы больше не высовывались. Посему либо публично кайся, либо цитату. Отмолчаться - тоже вариант, тогда слив сразу защитан.


Пользователь решил продолжить мысль 08 Мая 2013, 20:31:12:
...
Бугага я си++ не знаю только чистый так что мне не особо понятно хотя интересная инфа да
Ага, бу го га =)
там из С++ только ключевые слова class, virtual и static_cast, ну пропусти два параграфа. остальное исключительно Си.

главное ведь потом будете снова ныть "тили тили трали вали это мы не проходили это нам не задавали" (с)
"плавали, знаем" (с)

Пользователь решил продолжить мысль 08 Мая 2013, 20:38:48:
astrobeglec,
да не настаивает её преподаватель. просто криво заданный вопрос на форуме

В подписе надо писать backup

И что ты там зашифровал в CB?
Call Back?
Citizen Band?
Святые Воины?
Или это язык Си? Тогда не надо сюда эти вопросы тащить. Сейчас начнется:
Цитировать
- Си/не Си.
- Питон лучше
- ява рулит
- бейсик - Г
- сам урод, я на нам писать начинал
« Последнее редактирование: 08 Мая 2013, 20:55:31 от Yurror »

 

Страница сгенерирована за 0.087 секунд. Запросов: 25.