The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Оценка производительности Clang/LLVM и GCC при сборке во Fre..., opennews (??), 06-Сен-12, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


9. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  –1 +/
Сообщение от ананим (?), 06-Сен-12, 12:31 
>В процессе разработки как раз скорость компиляции важна

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

зыж
ну или у вас всё в одном, громадном файле.
ну или постоянно делаете make clean. или make mrproper.

Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

11. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +3 +/
Сообщение от Пыщ я Бетмен (?), 06-Сен-12, 12:45 
О, как часто тычешься после одной кривой компиляции в ошибки сборки "уже исправленного" проекта, хотя "вроде всё что исправлено должно быть перекомпилировано", что частенько make clean рулит.
Но это ж надо иногда что-то писать и реально собирать самому, чтобы знать про эти грабли
Ответить | Правка | Наверх | Cообщить модератору

13. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  –2 +/
Сообщение от ананим (?), 06-Сен-12, 13:02 
>О, как часто тычешься после одной кривой компиляции в ошибки сборки "уже исправленного" проекта, хотя "вроде всё что исправлено должно быть перекомпилировано", что частенько make clean рулит.

LOL
это функциональность make поддерживает даже БЕЗ написания правил.
ман суффиксные правила (suffixes)
и суффиксы по умолчанию
$ make -p|grep -i suffix
SUFFIXES := .out .a .ln .o .c .cc .C .cpp .p .f .F .m .r .y .l .ym .yl .s .S .mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo .w .ch .web .sh .elc .el
.SUFFIXES: .out .a .ln .o .c .cc .C .cpp .p .f .F .m .r .y .l .ym .yl .s .S .mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo .w .ch .web .sh .elc .el

Ответить | Правка | Наверх | Cообщить модератору

14. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  –1 +/
Сообщение от Алексей (??), 06-Сен-12, 13:18 
И конечно же при изменении .h файла make сможет корректно найти все места, где этот .h используется и их перекомпилировать.
Ответить | Правка | Наверх | Cообщить модератору

18. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +/
Сообщение от ананим (?), 06-Сен-12, 13:57 
ну! не всё коту масленица! :D
тут придётся поработать. опять же http://en.wikipedia.org/wiki/Precompiled_header
ну если кому проще сделать make clean, чем добавить пару строчек в мэйкфайл, то при чём тут компилятор.

зыж
ну и мир не закончился на make/autotools.
есть ещё scons, qmake наконец.

Ответить | Правка | Наверх | Cообщить модератору

20. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +/
Сообщение от ананим (?), 06-Сен-12, 14:17 
А! ещё кое-что по теме пспомнил (может кому будет интересно)
>$ man gccmakedep
>gccmakedep - create dependencies in makefiles using 'gcc -M'
>By default, gccmakedep places its output in the file named makefile if it exists, otherwise Makefile.

с примером использования в мэйкфале
>EXAMPLE
>   Normally, gccmakedep will be used in a makefile target so that typing 'make depend' will bring the dependencies up to date for the makefile.  For example,
>           SRCS = file1.c file2.c ...
>           CFLAGS = -O -DHACK -I../foobar -xyz
>           depend:
>                   gccmakedep -- $(CFLAGS) -- $(SRCS)

так что всё решаемо

Ответить | Правка | Наверх | Cообщить модератору

46. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +/
Сообщение от Ytch (?), 06-Сен-12, 22:03 
Ну, как бы, у gcc есть целая группа ключей (-M -MM -MD ...) связанная с построением файлов зависимостей, которые, в свою очередь, могут создаваться прямо при основной компиляции (без отдельного вызова компилятора/утилит) и includ'иться прямо в тот же Makefile (сразу всей кучей). В общем, имхо, проблема перекомпиляции только нужного при изменении какого-то header'a давно решена.
Если по каким-то причинам не подходит стандартный формат вывода зависимостей, то решается ключиком -M с последующим перенаправлением вывода на вход самописной/стандартной утилитки для преобразования/фильтрации.
Ответить | Правка | Наверх | Cообщить модератору

48. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от arisu (ok), 06-Сен-12, 22:13 
а ещё можно, например, выкинуть make. я вот несколько лет назад выкинул — и как хорошо жить-то стало! как будто жмущие деревянные ботинки снял.
Ответить | Правка | Наверх | Cообщить модератору

70. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от Антон (??), 07-Сен-12, 03:30 
А что взамен?
Ответить | Правка | Наверх | Cообщить модератору

78. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от iZEN (ok), 07-Сен-12, 07:05 
Maven
Ответить | Правка | Наверх | Cообщить модератору

98. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от ананим (?), 07-Сен-12, 14:09 
на жабе (и скорее всего только ДЛЯ жабы)???
на xml??? где без IDE точно с ума сойдёшь?

да даже вр.. бздишнегам не пожелаю! :D

Ответить | Правка | Наверх | Cообщить модератору

85. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от arisu (ok), 07-Сен-12, 11:44 
> А что взамен?

один из форков jam, сильно переработаный под мою специфику.

p.s. точнее, под специфику наших сборок, не только под мою.

Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

99. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от ананим (?), 07-Сен-12, 14:20 
CMake очень не плох http://ru.wikipedia.org/wiki/Cmake
особенно если нужно для мэйк/вс/хыкод генерить
и синтаксис простой

зыж
но опять же - это замена аutotools/.., а не make.
а вот scons заменяет и аutotools, и make.
но на питоне, включая сценарии сборки ... что на любителя. но если любитель - профессионал в питоне, то может быть отличным выбором! :D

Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

101. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от arisu (ok), 07-Сен-12, 15:14 
при наличии pkg-config автокрап вообще не нужен (а кто в pc-файлы не делает — тот ССЗБ). при необходимости конфигур-скрипт делается руками в несколько строчек. заодно там же можно проверить версию POSIX и систему. ну, и особого смысла в проектах, где уже нужен автокрап, штатно поддерживать что-то кроме gcc и clang нет.

а если программа для сборки требует гвидобейсик… нененене, дэвидблэйн.

Ответить | Правка | Наверх | Cообщить модератору

106. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от ананим (?), 07-Сен-12, 16:57 
а без уничижительных, мещанских названий никак?

зыж
>ну, и особого смысла в проектах, где уже нужен автокрап, штатно поддерживать что-то кроме gcc и clang нет.

есть другое мнение - кроме поддержки gcc (ну, возможно(!!!), и то для бздишного менталитета, теперь и шланга) ничего и не нужно.
по крайней мере в POSIX'системах.
к тому же, нет ничего сложного и для icc (или любого другого) настроить. например http://stackoverflow.com/questions/1280418/how-do-i-get-auto...

AC_PROG_CC([gcc icc])
$ ./confgure CC=icc
усё.

Ответить | Правка | К родителю #101 | Наверх | Cообщить модератору

96. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от ананим (?), 07-Сен-12, 13:59 
>а ещё можно, например, выкинуть make.

можно.
а можно и не выкидывать, а просто разобраться в нескольких деталях и эффективно использовать.
отличная, расширяемая система.

Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

102. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от arisu (ok), 07-Сен-12, 15:18 
> а можно и не выкидывать, а просто разобраться в нескольких деталях и
> эффективно использовать.

а можно — выкинуть. что, у make, например, уже появилась вменяемая обработка подкаталогов? нененене, рекурсивные вызовы make не предлагать.

впрочем, любители make потому и не любители раскидывать части проекта по подкаталогам — потому что PITA.

Ответить | Правка | Наверх | Cообщить модератору

105. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от ананим (?), 07-Сен-12, 16:50 
> нененене, рекурсивные вызовы make не предлагать.

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

> впрочем, любители make потому и не любители раскидывать части проекта по подкаталогам — потому что PITA

да что там сложного то?
all:
    cd ./subdir1; make all
    cd ./subdir2; make all
    ......................
    cd ./subdirN; make all

Ответить | Правка | Наверх | Cообщить модератору

111. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от arisu (ok), 07-Сен-12, 20:22 
забавно то, что мэйкофилы даже не понимают.

хинт: дерево зависимостей.
суперхинт: общее.
суперсуперхинт: где?

Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

114. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от ананим (?), 07-Сен-12, 22:29 
гиперхинт: а зачем нужно общее дерево зависимостей?
Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

118. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от arisu (ok), 07-Сен-12, 22:54 
> гиперхинт: а зачем нужно общее дерево зависимостей?

затем, что в отдельных каталогах далеко не всегда живут библиотеки. впрочем, мэйкофилы скажут «это нинада!»

Ответить | Правка | К родителю #114 | Наверх | Cообщить модератору

120. "Оценка производительности Clang/LLVM и GCC при сборке во..."  +/
Сообщение от ананим (?), 07-Сен-12, 23:58 
а им и НЕ НАДО там жить!!!

зыж
ты откуда свалился то? у меня даже к Лунатикам таких вопросов нет.
не, ну зашибись, будем сырцы с библиотеками мешать!

Ответить | Правка | К родителю #118 | Наверх | Cообщить модератору

97. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +/
Сообщение от ананим (?), 07-Сен-12, 14:06 
>Ну, как бы, у gcc есть целая группа ключей (-M -MM -MD ...)

именно поэтому я привел gccmakedep, а не makedepend.
см. пример - используются именно возможности gcc.
а сам gccmakedep всего-лишь:
$ file /usr/bin/gccmakedep
/usr/bin/gccmakedep: POSIX shell script, ASCII text executable

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

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

32. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +/
Сообщение от Аноним (-), 06-Сен-12, 16:14 
> И конечно же при изменении .h файла make сможет корректно найти все
> места, где этот .h используется и их перекомпилировать.

Сможет, ибо у нормальных людей dependency tracking используется в процессе разработки. Ну и пересобирается только то что зависело от этого .h файла. Как-то так, да.

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

34. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +/
Сообщение от Aesthetus Animus (ok), 06-Сен-12, 16:27 
makedepend
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

47. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +/
Сообщение от Ytch (?), 06-Сен-12, 22:05 
> И конечно же при изменении .h файла make сможет корректно найти все
> места, где этот .h используется и их перекомпилировать.

Вы не поверите!

(секрет фокуса - см. ключи gcc -M -MM -MD -MMD и т. п.)

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

35. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +2 +/
Сообщение от Аноним (-), 06-Сен-12, 16:30 
> всех obj-файлов.

спалился ))) У нас они имеют расширение ".o" )))

Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

36. "Оценка производительности Clang/LLVM и GCC при сборке во Fre..."  +3 +/
Сообщение от ананим (?), 06-Сен-12, 17:03 
obj-файлы - это не файлы с расширением .obj, чудик! :D
(кстати, винда .obj определит так - http://ru.wikipedia.org/wiki/Obj OBJ — это формат файлов описания геометрии)

а вот определять принадлежность к типу файлов по расширению - ВОТ ЭТО ПАЛЕВО! :D
>$ man gcc
>...
>By default, the object file name for a source file is made by replacing the suffix .c, .i, .s, etc., with .o

.o - всего-лишь расширение по-умолчанию obj-файла.

зыж
и ещё почитай мануалы на утилиту file
ну и узнай что такое /usr/share/misc/magic.mgc

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру