Installations
- Installer les librairies c et C++
sudo apt-get install build-essential
- Installer cmake
sudo apt-get install cmake
Première utilisation
Pour compiler un programe C++ avec cmake, on utilise un fichier CMakeLists.txt
dans lequel on donne les indications pour la création du Makefile
.
Exemple :
Nous reprenons l’exemple du site officiel{:target=”_blank”}
- Dans un dossier vide, créer deux fichiers :
CMakeLists.txt
:
cmake_minimum_required (VERSION 2.6)
project (Tutorial)
add_executable(Tutorial tutorial.cxx)
tutorial.cxx
:
//Un programme qui calcule la racine carrée
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main (int argc, char *argv[])
{
if (argc < 2)
{
fprintf(stdout,"Usage: %s number\n",argv[0]);
return 1;
}
double inputValue = atof(argv[1]);
double outputValue = sqrt(inputValue);
fprintf(stdout,"La racine carrée de %g est %g\n",
inputValue, outputValue);
return 0;
}
- A la racine du dossier, taper
cmake .
Cmake va alors créér le Makefile :
Vous devriez avoir quelque-chose comme :
-- The C compiler identification is GNU 7.2.0
-- The CXX compiler identification is GNU 7.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/demiton/git/exemples-Cpp/ubuntu17.10/cmake-exemple
- Le Makefile a été crée, il suffit alors de taper :
make
afin de compiler le projet :
demiton@X250:~/git/exemples-Cpp/ubuntu17.10/cmake-exemple$ ls
CMakeCache.txt cmake_install.cmake Makefile
CMakeFiles CMakeLists.txt tutorial.cxx
demiton@X250:~/git/exemples-Cpp/ubuntu17.10/cmake-exemple$ make
Scanning dependencies of target Tutorial
[ 50%] Building CXX object CMakeFiles/Tutorial.dir/tutorial.cxx.o
[100%] Linking CXX executable Tutorial
[100%] Built target Tutorial
demiton@X250:~/git/exemples-Cpp/ubuntu17.10/cmake-exemple$ ls
CMakeCache.txt cmake_install.cmake Makefile tutorial.cxx
CMakeFiles CMakeLists.txt Tutorial
- Lancer le projet :
./Tutorial 36