Make/Makefile: Automation Build Tool for Linux Projects

Make/Makefile: Automation Build Tool for Linux Projects

Follow Me by Clicking the Blue Text In Linux systems, make and Makefile are essential tools for automating the compilation and building of software projects. They simplify the software development process by automating the execution of a series of predefined commands to compile source code, run tests, install programs, and more. What is make? make … Read more

Introduction to Make and Makefile in Compilation and Linking

Introduction to Make and Makefile in Compilation and Linking

Introduction Many engineers without formal training are actually quite unfamiliar with the compilation and linking of projects (including the author himself). However, if we want to create our own projects or implement a project from 0 to 1, or if we want to optimize programs, modify the memory layout, or implement memory protection under the … Read more

In-Depth Analysis of CMake Build Process: From Fundamentals to Complex Projects

In-Depth Analysis of CMake Build Process: From Fundamentals to Complex Projects

1. Analysis of the Project Structure After CMake Build 1.1 Directory Structure After CMake Build After CMake build is complete, a directory named build will be generated in the root directory of the project. This directory is where all intermediate files and final target files generated during the CMake build process are stored. Below, we … Read more

Introduction to Makefile Structure in Compilation and Linking

Introduction to Makefile Structure in Compilation and Linking

Introduction Many engineers without formal education in computer science are actually not familiar with the compilation and linking of projects (including the author). However, if we want to create our own projects or implement a project from 0 to 1, or if we want to optimize programs, modify the memory layout, or implement memory protection … Read more

Using Makefile for Project Management to Boost Efficiency

Using Makefile for Project Management to Boost Efficiency

Click the blue text above to follow us 1. Introduction to Makefile Makefile is a file specially designed to assist in project build management. It defines a set of commands that the compiler and IDE project management systems can automatically execute, primarily used for automating compilation and reducing the burden of repetitive tasks. The Makefile … Read more

Detailed Explanation of CMakeLists.txt

Detailed Explanation of CMakeLists.txt

In the previous article, “Introduction to CMake Build Tool for ESP32,” we introduced the most basic usage of CMake with a “Hello World” program. Today, we will provide a detailed explanation of the CMakeLists.txt file. CMakeLists.txt The CMakeLists.txt file is the core configuration file for the CMake build tool. It contains a series of instructions … Read more

Getting Started with CMake for Large Projects

Getting Started with CMake for Large Projects

Most open-source storage systems are built on the Linux operating system. This article introduces storage technology while also covering some Linux content, focusing on practicality. It will be helpful for both application development and kernel understanding. When our project consists of thousands of files, manually writing a Makefile will be a nightmare. Fortunately, CMake helps … Read more

CMake: Splitting Source Code into Modules

CMake: Splitting Source Code into Modules

Introduction: Projects usually start with a single CMakeLists.txt file, which grows over time. In this article, we will demonstrate a mechanism to split the CMakeLists.txt into smaller units. The motivation for splitting CMakeLists.txt into modules: The main CMakeLists.txt is easier to read; CMake modules can be reused in other projects Combined with functions, modules can … Read more

Integrating External Libraries in CMake

Integrating External Libraries in CMake

Hello, today we will delve into a very practical and challenging topic—Integrating External Libraries in CMake: How to Manage Third-Party Libraries Using find_package and ExternalProject. In most C++ projects, integrating external libraries is an indispensable part. Efficiently and elegantly managing these dependencies, especially during multi-platform builds, is a skill every developer needs to master. 1. … Read more