Mastering CMake from Beginner to Advanced (3): Functions and Parameter Passing

Mastering CMake from Beginner to Advanced (3): Functions and Parameter Passing

In-depth analysis<span>function()</span> and <span>macro()</span> differences, mastering variable arguments and cross-platform compilation practical applications. 1. <span><span>function()</span></span> and <span><span>macro()</span></span> essential differences 1.1 Scope and Variable Passing <span>function()</span>: Local Scope: Variables (including parameters) defined inside the function are only valid within the function and are not visible externally. Parameter Passing: Passed by value, modifications to parameters within the … Read more

CMake from Beginner to Expert (2): Variables and Scope

CMake from Beginner to Expert (2): Variables and Scope

1. Why is it important to understand variables and scope? CMake is not just a build tool, but also a “meta-programming language”. Variables and scope are its core programming elements, directly affecting: Project Configuration: Dynamically switching compilers, library paths, and compilation options Module Interaction: Data transfer between parent and child directories Environment Control: Cross-platform compatibility … Read more

CMake Basics: Specifying Executable Output Paths

CMake Basics: Specifying Executable Output Paths

cmake_minimum_required(VERSION 3.0)project(MyProject VERSION 1.0) # Specify the output path for the executable set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/$&lt;CONFIG&gt;) # Specify the output path for dynamic libraries set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/$&lt;CONFIG&gt;) # Specify the output path for static libraries set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/$&lt;CONFIG&gt;) set(SRC_LIST add.c subtract.c main.c)add_executable(demo01 ${SRC_LIST}) File paths and execution results

Common Syntax of CMake (Mathematical Calculations)

Common Syntax of CMake (Mathematical Calculations)

Previous Highlights:CMake Hello, WorldCMake VariablesCMake Official Tutorial (Basic Project Setup)CMake Official Tutorial (Library Creation)CMake Official Tutorial (Usage Requirements)CMake Official Tutorial (Installation and Testing)CMake Common Syntax (if Statements)CMake Common Syntax (Cache Variables)CMake Common Syntax (Environment Variables) The math command in CMake is primarily used to perform simple integer mathematical operations during the build configuration phase, making … Read more

Basics of CMake: CMakeLists.txt

Basics of CMake: CMakeLists.txt

# File name: CMakeLists.txt # Set the minimum required CMake version to 3.15 cmake_minimum_required(VERSION 3.15) # Set the project name to MyProject, version number to 1.0 project(MyProject VERSION 1.0) # Set compilation options, set C++ standard to C++17 set(CMAKE_CXX_STANDARD 17) # Force the compiler to support the specified C++ standard (C++17 in this case), # … Read more

CMake Basics: Configuration and Best Practices

CMake Basics: Configuration and Best Practices

1. File Structure mkdir buildcmake .. -G "Unix Makefiles"make 2. Code Explanation # CMake recommends using "out-of-source builds" to avoid polluting the source code directory. # Create a build directory (name can be arbitrary, e.g., build/) mkdir build # Enter that directory cd build # Specify the parent directory of CMakeLists.txt (i.e., the source code … Read more

CMake Executable Not Found? A Comprehensive Analysis of Docker Image Runtime Issues

CMake Executable Not Found? A Comprehensive Analysis of Docker Image Runtime Issues

NEWS Click the blue text to follow usNEWS TODAY Hello everyone, this is The Programmer’s Hair Loss Guide! CMake Executable Not Found? A Comprehensive Analysis of Docker Image Runtime Issues Introduction When building C++ projects using Docker containers, have you encountered the error <span>cmake exe file is not found</span>? This article will provide a detailed … Read more

Introduction to CMake: Essential for Building Modern C++ Projects

Introduction to CMake: Essential for Building Modern C++ Projects

Introduction to CMake: Essential for Building Modern C++ Projects Hello everyone! As a C++ programmer, I understand the importance of build tools. Today, I want to share with you CMake – a powerful cross-platform build tool. Don’t be intimidated by the term “build tool”; follow me step by step, and you’ll find that CMake is … Read more

CMake Basics: Compiling Static and Dynamic Libraries, Customizing Library Output Paths

CMake Basics: Compiling Static and Dynamic Libraries, Customizing Library Output Paths

1. Generate a static library for third-party useIn Linux, the name of a static library is composed of: lib + library name + .a, where the library name needs to be specified, and lib and .a are generated automatically. The Windows system is similar.Project file structure:CMakeLists.txt # Set the minimum required CMake version to 3.15 … Read more

CMake Basics: Compiling Multiple Source Files Together

CMake Basics: Compiling Multiple Source Files Together

1. Multiple source files add.c and subtract.c are in one folder, the file structure is as follows:head.h #ifndef _HEAD_H #define _HEAD_H // Add int add(int a, int b); // Subtract int subtract(int a, int b); #endif add.c #include <stdio.h> #include "head.h" // Add int add(int a, int b) { return a + b; } subtract.c … Read more