gnu make

Reply to
Alexander Derazhne
Loading thread data ...
Reply to
Dimmy Timchenko

В статье snipped-for-privacy@f15.n.z2.ftn> Dimmy Timchenko написал(а):

Для чего?

Reply to
Dmitry Fedorov
Reply to
Dimmy Timchenko
Reply to
Vladimir Vassilevsky
Reply to
Dmitry Lyokhin
Reply to
Alexander Derazhne
Reply to
Dimmy Timchenko
Reply to
Vladimir Vassilevsky
Reply to
Alexander Derazhne
20-Sep-03 17:36 Alexander Derazhne wrote to Vladimir Vassilevsky:

AD> В проекте, который мне сейчас приходится сопровождать, некий нехороший AD> человек написал так (во всех местах :-( ): AD> === <db.h> === AD> /* ... */ AD> #ifdef _DB_C_ AD> #define GLOBAL AD> #else AD> #define GLOBAL extern AD> #endif М-мать!

Видать человек попытался сунуть int param в h-файл, получил от линкера "многократное определение" и "с честью вышел из ситуации" :-) Даже если считать, что компилятор не умеет нормально отрабатывать extern int param; int patram; (что-то я таких компиляторов не видел или уже давно и счастливо забыл), можно было всё-же переменную определить в c-файле а в h-файле написать

#ifndef _DB_C_ extern int param; extern uint32 get_db_first_bute(); #endif

AD> Найти место где определяется переменная и её тип бывает очень непросто. AD> Глубина вложенности хидеров тоже внушаИтЬ. Они мне скоро сниться будут. AD> В мейк-файле работа начинается с копирования одного из h-файлов в AD> другой - в зависимости от указанной цели. А целью является _бренд_ под AD> который идёт сборка. Поскольку этот файл потом включается всюду, всякий AD> раз идёт полная перекомпиляция. Спрашивается - а на фига такой мейк?! КrЮт0й хакер работал :-) Хадействовал возможности на всю катушку :-))

AD> Повбывав-бы... Угу. От "трудов" таких потом во все стороны идут мифы о ненужности make и глупости C.

wbr,

Reply to
Oleksandr Redchuk
Reply to
Alexander Derazhne
Reply to
Sergey Pinigin
Reply to
Sergey Nazarkin
Reply to
Leha Bishletov
Reply to
Sergey Pinigin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.