1. Рождение GCC!
В 1985 году, в тёмную ночь, когда его пальцы были вне поля зрения, странный мужчина с бородой, невысокой фигурой и растрёпанными волосами начал писать набор компиляторов на языке C. Этим экфонией, позже известным как «величайший программист» и «отец свободного программного обеспечения», был Ричард Столлман. После двух лет упорной работы Ричард Столлман, у которого более длинная борода и более растрёпанные волосы, завершил первую версию компилятора C, которую он называет GNU C Complier, и который сейчас является источником знаменитого GCC. Позже GCC быстро развивался, и теперь GCC может компилировать не только языки C, но и C++, Fortran, Pascal, Objective-C, Java, Ada и другие языки. В 80-х и 90-х годах прошлого века частота процессора, размер жёсткого диска и размер памяти персональных компьютеров измерялись в МБ или даже в КБ, а количество программных файлов, требующих компилировать, было небольшим, и команды GCC были достаточны для этой задачи.
Во-вторых, появились новые проблемы! (make & makefile)
С улучшением и популяризацией производительности компьютеров программный проект содержит всё больше исходных файлов, таких как Linux, который легко запутывается и загружается работой, что легко запутать и загружать работу, что приводит к безумию.
Ричард Столлман и Роланд МакГрат совместно разработали марку и файл для решения этой задачи. Инструмент make можно рассматривать как интеллектуальную пакетную обработку, которая не выполняет функции компиляции и связывания, а использует метод, схожий с пакетной обработкой — вызывая команды, заданные пользователем в файле makefile. Что такое makefile? Makefile — это скрипт-файл, похожий на партитуру песни, инструмент make похож на дирижёра, дирижёр направляет весь оркестр играть в соответствии с партитурой, а инструмент make компилируется и связывается в соответствии с командами в makefile. Команда makefile содержит команды для вызова gcc (или другого компилятора) для компиляции исходного файла.
3. Снова возникли новые проблемы! (Cmake и CMakelist)
Makefile можно написать вручную в некоторых простых проектах, но если проект очень большой, писать его вручную становится очень сложно. И makefile для разных платформ появлялись один за другим, включая GNU make, qmake от QT, MSnmake от Microsoft, BSD Make(pmake), Makepp и другие. Эти инструменты Make соответствуют разным спецификациям и стандартам, а формат Makefile, который они выполняют, сильно различается. Это создаёт серьёзную проблему: если программное обеспечение хочет быть кроссплатформенным, оно должно уметь компилировать на разных платформах. Если вы используете вышеуказанный инструмент Make, вам придётся писать makefile для каждого стандарта, что будет безумной задачей, а если вы измените makefile платформы, придётся заново его модифицировать.
В этот момент появился инструмент Cmake, и Cmake может проще сгенерировать файл makefile для вышеуказанного make. Конечно, у cmake есть и другие функции: он может генерировать make-файлы, которые можно использовать на соответствующей платформе разных платформ, и вам не нужно самостоятельно их менять. cmake — это верхний слой Makefile, и его цель — создавать портативные makefiles и упростлять огромную нагрузку по самостоятельному написанию makefile. Но что использует cmake для создания makefile? Также необходимо сгенерировать makefile на основе файла под названием CMakeLists.txt file (научное название: конфигурационный файл). В конце концов CMakeLists.txt кто пишет этот документ? Конечно, вы сами её написали.
В-четвёртых, появились новые проблемы! (Ниндзя)
По мере того как разработка программного обеспечения становится всё более сложной, проблема медленной скорости выполнения make становится всё более серьёзной.
В результате программист Google запустил Ninja — инструмент сборки, ориентированный на скорость. Ninja не обладает множеством продвинутых функций, синтаксис и использование очень просты, и он подробно указывает, что делать, поэтому компиляция начинается очень быстро. Согласно реальным тестам: с более чем 30 000 исходных файлов можно начать реальную сборку за 1 секунду. В отличие от этого, Makefile, написанные старшими инженерами, тоже начинают собирать 10-20 секунд.
5. Идеальная концовка на данный момент!
Cmake может генерировать инструменты .ninja и .makefile. Поскольку многие люди не знакомы с написанием makefile и ninja-файлов, cmake достаточно простого описания исходного кода (то есть CMakeLists.txt файла), чтобы автоматически сгенерировать файл 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 одна за другой легко запутаться и запутаться, поэтому появляется следующий инструмент make.
2. создать Инструмент make можно рассматривать как интеллектуальную пакетную обработку, которая не выполняет функции компиляции и связывания, а использует метод, схожий с пакетной обработкой — вызывая команды, заданные пользователем в файле makefile.
3. 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, понимаете?
Переведён из:
Вход по гиперссылке виден.
Вход по гиперссылке виден.
Вход по гиперссылке виден.
|