Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 9
1

При попытке использовать одновременно параметры-nostartfiles и-static программа выдаёт Segmentation fault

25.10.2014, 18:44. Показов 1131. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C
1
2
3
4
5
6
7
8
#define MESG    "Hello, World!\n"
#define MESG_SZ sizeof(MESG)
 
main() 
{
 write(1,MESG,MESG_SZ);
 _exit(0);
}
Указанный выше код пытаюсь скомпилировать с минимальным размером.
В gcc забиваются параметры: -nostartfiles -nodefaultlibs -nostdlib -s -Os -static
С gcc пока толком не разобрался, до этого использовал VS, поэтому назначение некоторых параметров понимаю, по большей части, интуитивно.

Суть проблемы: при попытке использовать одновременно параметры -nostartfiles и -static готовая программа выдаёт Segmentation fault. При использовании какого-либо одного из этих параметров всё работает, но сжатие недостаточно (500+кб без -nostartfiles, 4.8кб без -static против 1.3кб с ними).
Компилятор выдаёт предупреждения.
warning: incompatible implicit declaration of built-in function ‘_exit’
warning: cannot find entry symbol _start; defaulting to 0000000008048100

Запуску они не мешают, кроме случае одновременного использования "проблемных" параметров.

Вопрос: каким образом можно подкорректировать код, чтобы избежать искомой ошибки (сохраняя условие минимального размера программы)? И за счёт чего Segmentation fault вообще появляется в конкретном примере? За ссылки на статьи\литературу, из которых можно почерпнуть ответ, буду крайне признателен.
P.S. Доки gcc перелопатил, но найти ничего полезного не смог. В похожих темах здесь ответа тоже не нашёл.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2014, 18:44
Ответы с готовыми решениями:

Segmentation fault при попытке чтения файла (которого нет)
Новичок в С. Сижу под линухом. Что-бы освоить аргументы командной строки и i/o файлов в С решил...

Printhepl ключом -h выдает что делает программа, но в конце пишет segmentation fault(core damped)
Помогите выявить ошибку, компилю в линуксе, когда вызывают Printhepl ключом -h он выдает что делает...

[C/C++] "Segmentation fault" при попытке передачи параметра командной строки.
Прога вылетает при попытке передачи параметра через командную строку.Такой код: #include...

При установке и удалении пакетов выдаёт "Segmentation fault"
Добрый день! Произошла проблема , после обновления, пытаюсь удалить или установить любой пакет...

1
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
29.10.2014, 10:24 2
Цитата Сообщение от Sator_nr Посмотреть сообщение
И за счёт чего Segmentation fault вообще появляется в конкретном примере?
Цитата Сообщение от Sator_nr Посмотреть сообщение
В gcc забиваются параметры: -nostartfiles -nodefaultlibs -nostdlib -s -Os -static
Цитата Сообщение от Sator_nr Посмотреть сообщение
С gcc пока толком не разобрался, до этого использовал VS, поэтому назначение некоторых параметров понимаю, по большей части, интуитивно.
Почитайте гццшные доки по вашим параметрам и, если повезет, поймете. Вообще, рекомендую избавляться от привычки типа "напихал ключей от фонаря, почему segfault?".
Цитата Сообщение от Sator_nr Посмотреть сообщение
Доки gcc перелопатил, но найти ничего полезного не смог.
Да неужели?!
0
29.10.2014, 10:24
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2014, 10:24
Помогаю со студенческими работами здесь

Шифр Цезаря выдает Segmentation fault
не работает, помогите разобраться(компилируется без ошибок, но при запуске и вводе ключа шифра...

Strtok в цикле выдает segmentation fault
Здравствуйте! Мучаюсь с этим кодом - на строке getenv он постоянно выдает segmentation fault. В чем...

Код не работает, выдает Segmentation fault
После запуска программы и ввода входящих данных, компилятор выдает segmentation fault, что с этим...

QImage setPixel выдает ошибку segmentation fault
Есть рекурсивная функция которая закрашивает белые пиксели красными, если изображенние...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru