le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
CMake è uno strumento di generazione di sistemi di compilazione multipiattaforma in grado di generare file di compilazione (come Makefile o file di progetto di Visual Studio) per compilare e collegare applicazioni.
finestre
Linux
sudo apt-get update
sudo apt-get install cmake
Dobbiamo fornire i file sorgente e fornire la descrizione della configurazione del progetto a CMake. Questa descrizione viene eseguita utilizzando CMake, la documentazione completa è disponibile su https://cmake.org/cmake/help/latest/.
Crea un semplice progetto C++ contenente i seguenti file:
Vogliamo compilare il codice sorgente main.cpp in un unico file eseguibile:
#include<iostream>
int main(){
std::cout<<"Hello world"<<std::endl;
return 0;
}
# 设置CMake所需的最低版本。如果使用的CMake版本低于该版本,则会发出致命错误
cmake_minimum_required(VERSION 3.10)
# 声明了项目的名称(Test)和支持的编程语言(CXX代表C++)
project(Test CXX)
# 指示CMake创建一个新目标:可执行文件main。这个可执行文件是通过编译和链接源文件main生成的。CMake将为编译器使用默认设置,并自动选择生成工具
add_executable(main main.cpp)
Apri un prompt dei comandi, vai alla directory del progetto ed esegui:
mkdir build
cd build
cmake ..
Oppure utilizzare, con lo stesso effetto:
# 该命令是跨平台的,使用了-H和-B为CLI选项。-H表示当前目录中搜索根CMakeLists.txt文件。-Bbuild告诉CMake在一个名为build的目录中生成所有的文件
cmake -H. -Bbuild
La configurazione del progetto è già presentebuild
generato nella directory. Ora possiamo compilare l'eseguibile:
cmake --build .
CMake è un generatore di sistemi di compilazione che può utilizzare un singolo CMakeLists.txt per configurare progetti per diversi set di strumenti su piattaforme diverse. Descrivi in CMakeLists.txt le azioni che il tuo sistema di compilazione deve eseguire per configurare e compilare il tuo codice. Sulla base di queste istruzioni, CMake genererà le istruzioni corrispondenti per il sistema di compilazione selezionato (Unix Makefile, Ninja, Visual Studio, ecc.).
NMake Makefiles
OVisual Studio
.MinGW Makefiles
.cmake -Bbuild -G "NMake Makefiles"
La struttura delle directory è la seguente:
MyProject/
├── include/
│ └── say.hpp
├── src/
│ ├── main.cpp
│ └── say.cpp
├── lib/
└── bin/
# main.cpp
#include"say.hpp"
int main() {
say();
return 0;
}
# say.cpp
#include<iostream>
#include"say.hpp"
void say(){
std::cout<<"Hello world!"<<std::endl;
}
# say.hpp
#pragma once
void say();
dobbiamo scrivere CMakeLists.txt
files per compilare questi file e collegarli alla libreria.
# 指定 CMake 的最低版本要求
cmake_minimum_required(VERSION 3.10)
# 定义项目名称和版本
project(test VERSION 1.0.0)
# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# 添加 include 目录到编译器的头文件搜索路径
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
# 设置库和可执行文件输出路径
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
# 创建静态库目标
add_library(message
STATIC # 若动态库则参数为SHARED
${CMAKE_CURRENT_SOURCE_DIR}/src/say.cpp
)
# 添加可执行文件
add_executable(test
${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp
)
# 链接静态/动态库到可执行文件
target_link_libraries(test say)
Apri un prompt dei comandi o un terminale e vai alla directory principale del progetto:
cd Test
creare build
directory e raggiungila:
mkdir build
cd build
Esegui il comando di configurazione CMake:
cmake ..
Esegui il comando di compilazione:
cmake --build .