Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 2453|Отговор: 1

Въведение в GCC, CMake, CMakelist, Make, Makefile и Ninja

[Копирай линк]
Публикувано в 9.07.2024 г. 20:44:28 ч. | | |
1. Раждането на GCC!

През 1985 г., в тъмна нощ, когато пръстите му бяха извън полезрението, странен мъж с брада, ниска фигура и разрошена коса започна да пише комплект компилатори на езика C. Този екфония, по-късно известен като "най-великия програмист" и "баща на свободния софтуер", беше Ричард Столман. След две години усилена работа, Ричард Столман, който има по-дълга брада и по-разрошена коса, завършва първата версия на C компилатора, която нарича GNU C Complier, който сега е източник на прочутия GCC. По-късно GCC се развива бързо и сега GCC може да компилира не само език C, но и C++, Fortran, Pascal, Objective-C, Java, Ada и други езици. През 80-те и 90-те години на миналия век честотата на процесора, размерът на твърдия диск и паметта на персоналните компютри се измерваха в MB или дори KB, а броят на програмните файлове, които трябваше да се компилират, беше малък, а командите на GCC бяха достатъчни, за да се справят с това.

Второ, появиха се нови проблеми! (make & makefile)

С подобряването и популяризирането на производителността на компютрите, софтуерният проект съдържа все повече изходни файлове, като Linux, който лесно се обърква и натоварва с работа, което лесно се обърква и натоварва, което ще побърка хората.

Ричард Столман и Роланд Макграт съвместно разработиха марка и makefile, за да решат този проблем. Инструментът make може да се разглежда като интелигентен инструмент за пакетна обработка, който няма функция за компилиране и свързване, а използва метод, подобен на пакетната обработка – чрез извикване на командите, зададени от потребителя във файла makefile. Какво е makefile? Makefile е скриптов файл, подобно на партитурата на песен, инструментът за създаване е като диригент, диригентът насочва целия оркестър да свири според партитурата, а make tool се компилира и свързва според командите в makefile. Командата makefile съдържа команди за извикване на gcc (или друг компилатор) за компилиране на изходен файл.

3. Отново се появиха нови проблеми! (Cmake и CMakelist)

Makefile може да се пише на ръка под някои прости проекти, но когато проектът е много голям, е много трудно да се пише на ръка. А makefiles за различни платформи се появяват един след друг, включително GNU make, qmake на QT, MSnmake на Microsoft, BSD Make(pmake), Makepp и др. Тези инструменти на Make следват различни спецификации и стандарти, а форматът Makefile, който изпълняват, варира значително. Това създава сериозен проблем: ако софтуерът иска да бъде кросплатформен, трябва да може да компилира на различни платформи. Ако използвате горния инструмент Make, трябва да напишете makefile за всеки стандарт, което ще е луда задача, а ако промените makefile-а на платформата, ще трябва да го модифицирате отново.

Тогава се появи инструментът Cmake и Cmake може по-лесно да генерира makefile файл за горния продукт. Разбира се, cmake има и други функции, а именно може да генерира makeфайлове, които могат да се използват на съответната платформа на различни платформи, и не е нужно да ги променяте сами. cmake е най-горният слой на Makefile, а целта му е да създават преносими makefiles и да опростяват огромната работа по писането на makefile самостоятелно. Но какво използва cmake, за да генерира makefile? Също така трябва да генерира makefile, базиран на файл, наречен CMakeLists.txt file (научно име: конфигурационен файл). В крайна сметка CMakeLists.txt кой пише документа? Разбира се, ти сам го написа.

Четвърто, отново се появиха нови проблеми! (Нинджа)

С нарастването и сложността на софтуерното инженерство, проблемът с бавната скорост на изпълнение на производството става все по-сериозен.

В резултат на това програмист на Google пусна Ninja – инструмент за сглобяване, фокусиран върху скоростта. Ninja няма всякакви напреднали функции, синтаксисът и употребата са много прости и подробно се задава какво да се прави, така че започва да се компилира много бързо. Според реални тестове: с над 30 000 изходни файла е възможно да се започне реална конфигурация за 1 секунда. За разлика от това, Makefile, написани от старши инженери, отнемат 10-20 секунди за започване на изграждане.

5. Перфектният край досега!

Cmake може да генерира .ninja и .makefile инструменти. Тъй като много хора не са запознати с това как да пишат makefile файлове и ninja файлове, cmake се нуждае само от просто описание на изходния код (т.е. CMakeLists.txt файл), за да генерира автоматично project makefile или ninja файл и след това да започне компилиране чрез ninja или make.


5 минути да разбера make/makefile/cmake/nmake

Напоследък създавали ли сте от make, cmake, makefile... ... Тези неща са замайвани, погледнете следващата статия, може би ще разберете ясно.

1. GCC
Това е GNU Compiler Collection, или просто компилатор, който може да компилира много програмни езици (включително C, C++, Objective-C, Fortran, Java и др.).

Когато нашата програма има само един изходен файл, можем да го компилираме директно с командата gcc.

Но какво ако нашата програма съдържа много изходни файлове? При компилиране с gcc команди една по една лесно се обърква и е трудоемко, затова се появява следният инструмент за създаване.

2. да създам
Инструментът make може да се разглежда като интелигентен инструмент за пакетна обработка, който няма функция за компилиране и свързване, а използва метод, подобен на пакетната обработка – чрез извикване на командите, зададени от потребителя във файла makefile.

3. makefile
Какво е това?

Просто казано, както партитурата на песен, инструментът за създаване е като диригент, диригентът насочва целия оркестър да свири според партитурата, а инструментът за създаване компилира и свързва според командите в makefile-а. Командата makefile съдържа команди за извикване на gcc (или друг компилатор) за компилиране на изходен файл.

Makefile може да се направи ръчно в някои прости проекти, но когато проектът е много голям, ръчно написаният makefile също е много проблемен.

4. CMAKE
Cmake лесно може да генерира makefile файл за горната марка. Разбира се, cmake има и други по-добри функции, а именно, може да генерира makeфайлове, които могат да се използват на съответната платформа на различни платформи, така че не се налага да го модифицираме сами.

Но какво използва cmake, за да генерира makefile? Също така трябва да генерира makefile, базиран на файл, наречен CMakeLists.txt file (научно име: конфигурационен файл).

5. CMakeList.txt
В крайна сметка CMakeLists.txt кой пише документа? Скъпи, написано е от твоята собствена ръка.

6. nmake
Какво е nmake?

nmake е странична команда в Microsoft Visual Studio, която трябва да инсталира VS, което всъщност може да се каже, че е еквивалентно на make-а в Linux, разбираш ли?

Прехвърлен от:

Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.





Предишен:ERP Kingdee Cloud Starry Sky (1) Просто разбиране
Следващ:Rocky Linux 9 пакет не е намерен: Няма съвпадение с аргумента: xxx
 Хазяин| Публикувано в 8.12.2024 г. 8:57:06 ч. |
MinGW предоставя проста и удобна среда за разработка на програми, базирана на GCC, за Windows. MinGW събира колекция от безплатни файлове за използване на Windows заглавия и библиотеки; Той също интегрира GNU (http://www.gnu.org/) инструменти, особено инструменти за разработка на GNU като класически gcc, g++, make и др. MinGW е напълно свободен софтуер, който симулира средата за разработка на GCC под Linux на платформата Windows, осигурявайки добра основна поддръжка за кросплатформената разработка на C++ и предоставяйки условия за програмисти, работещи под Windows, да се запознаят с инженерната организация на C++ под Linux.
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com