![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
IDE моя компилит так
gcc -O0 -Wall -c -std=c99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" и gcc -O0 -g -c -std=c99 -MMD -MP -MF"src/sharedMemory.d" -MT"src/sharedMemory.d" -o"src/sharedMemory.o" "../src/sharedMemory.c" что за флаги такие y gcc, нигде ничего найти не смог и для чего файлы с расширением d |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
d - от слова dependency - зависимость. таким образом создаются списки заголовочных файлов, используемых исходником, для отслеживания зависимости от них.
|
|||
|
||||
null56 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 4 Всего: 12 |
для начала man gcc, неужели там ничего не нашел... цитирую оттуда -O<число> - читается как "буква О нуль" (в твоем случае) - уровень оптимизации -Wall - максимум ворнингов -c - компилить ![]() -std=<> - стандарт языка (в твоем случае расширение языка c99) про различия -M, -MMD, -MP, -MF почитай в мане http://linux.die.net/man/1/gcc $@, $< - ответы тут http://www.tver.mesi.ru/e-lib/res/347/MAKE.htm
"$(@:%.o=%.d)" тут, затрудняюсь ответить, но это регулярное выражение отвечает за формирование имени конечной цели, подробнее наверное или в мане по make или того же gcc может тут что есть http://ftp.linux.kiev.ua/pub/docs/developer/tools/make.txt но я полагаю, что имя целевого файла равно имени файла %.o и имени %.d, то есть имя как раз равно '%', не помню уже, поэтому пускай меня поправят Добавлено через 45 секунд -g - дополнительная информация для gdb |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
|
|||
|
||||
sergioK1 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
не понятно несколько моментов 1) как в мане(не в гугле) быстро найти место относящееся к нужным флагам, что-бы не читать 50 страниц про ARM, Preprocessor и все остальное (что-то типо man gcc -MM ) 2) почему Эклипсе под Линукс строит мэйк файл а под винду нет? и как это изменить в настройках среды (это не форум Эклипса но тем не менее ,в гугле искал ничего толкового не нашел) 3) Что делать с оптимизацией? , из каких соображений исходить устанавливая уровень ? 4) Для чего во многих IDE eсть Release mode & Debug mode ? если можно просто добавить флаг - g ?? |
||||
|
|||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 1 Всего: 49 |
В man есть поиск. Нажимаете "/" и вводите то, что требуется найти. Переход к следующему вхождению - "n". |
|||
|
||||
rsm |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 3 Всего: 62 |
Зависит от проекта. Если нужен бинарник минимального размера - ставим -Os. Если требуется быстрая работа кода - манипулируем -On, n =~ [1..3]. Если нужна облегченная отладка - ставим -O0.
Несколько моделей сборки крайне удобны: а) когда есть части кода, регулируемого препроцессором; б) когда один и тот же код собирается под разные архитектуры; в) для тестовых веток; г) для сборок с разными флагами (например, -O0 -g -pg - сборка бинарника без оптимизации, с отладочной информацией и информацией для профилирования); д) когда собирается сразу несколько бинарников с разными опциями компиляции; е) и прочая прочая... Конечно, никто не запрещает тупо открывать настройки проекта, ставить флажки, компилить, открывать настройки, убирать флажки, компилить, открывать настройки, ставить флажки... ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |