[LINUX] Construction facile de code C ++ avec CMake sur Docker

introduction

--Je souhaite créer un projet Cpp compatible avec Linux sur un PC Windows

bon point

Exemple d'utilisation

-① Mettez le fichier .cpp et CMakeLists.txt dans le dossier cpp --Modifier avec votre éditeur préféré tel que VSCode -② Entrez dans le conteneur et exécutez la construction --③ Le fichier construit peut être récupéré à partir du dossier cpp dans l'environnement local. image.png

Structure des dossiers

tree


Structure des dossiers
├── Dockerfile
├── docker-compose.yml
└── cpp ← Généré automatiquement

Dockerfile

Dockerfile


FROM ubuntu:18.04

RUN apt-get update && \
    apt-get install -y sudo && \
    apt-get install build-essential -y && \
    apt-get install -y vim && \
    apt-get install -y wget && \
    apt-get install -y unzip

# Install compilers.
RUN apt-get install -y gcc && \
    apt-get install -y g++

RUN apt-get install -y cmake 3.10.2

# SET path to compilers.
# https://stackoverflow.com/questions/17275348/how-to-specify-new-gcc-path-for-cmake
ENV CC=/usr/bin/gcc \
    CXX=/usr/bin/g++

# OpenBlas, Lapack
RUN apt-get install -y libopenblas-dev  && \
    apt-get install -y liblapack-dev

# Please use below directory to install cpp libraries.
WORKDIR $HOME/usr/
RUN mkdir ./library

CMD bash

docker-compose.yml

docker-compose.yml


version: '3'

services:
  cmake:
    container_name: cmake_container
    build:
      context: .
      dockerfile: Dockerfile
    
    tty: true
    command: /bin/bash

    volumes:
      - ./cpp:/usr/cpp

Comment utiliser

Démarrer le conteneur

Environnement local


#Premier lancement de conteneur
docker-compose up -d

#Entrez dans le conteneur en cours d'exécution
docker-compose run cmake

Compilation du code source

@make_container


#Entrez le dossier cpp dans le conteneur
cd cpp

#Créez et entrez dans le dossier de construction
mkdir build
cd build

#Exécutez cmake
cmake ../

#Exécuter make
make

point important

Didacticiel

――Dans ce qui suit, nous allons vous présenter comment construire le code source qui dit «Hello CMake!». --Créez les deux fichiers suivants dans le dossier cpp.

Configuration dans le dossier cpp


cpp
├── main.cpp
└── CMakeLists.txt

main.cpp


#include <iostream>
#include <string>

int main(void){
    std::cout << "Hello CMake!" << std::endl;
    return 0;
}

CMakeLists.txt


#Nom du projet
project("testCMake")

#Définir la version de CMake
cmake_minimum_required(VERSION 2.8)

# testCMake.Le fichier exécutable appelé est principal.Créé à partir de cpp
add_executable(testCMake main.cpp)

@cmake_container


#Entrez le dossier cpp dans le conteneur
cd cpp

#Créer un dossier de construction
mkdir build
cd build

#Exécution de la construction
cmake ../
make

@cmake_container


./testCMake 
Hello CMake!

Télécharger

Recommended Posts

Construction facile de code C ++ avec CMake sur Docker
Liaison multilingue C / C ++ facile avec CMake + SWIG
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Construction facile]
Utilisation de Docker (Hyper-V) avec PyCharm sur Windows 10 (à partir d'août 2017)
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux
Version compatible GPU de l'application LibTorch (PyTorch C ++) sur Windows sans CMake (uniquement la première fois)
docker build python basé sur alpin
Easy Slackbot avec Docker et Errbot
Installation facile d'OpenCV sur RaspberryPi 3+
Créer un fichier deb avec Docker
Construire un environnement Mysql + Python avec docker
Tutoriel "Cython" qui rend Python explosif: lorsque le code C ++ dépend de la bibliothèque. Tout d'abord, CMake.
Modifiez le fichier du serveur de destination de la connexion SSH sur le serveur avec VS Code
Outil de test de charge Build Locust 1.1 sur Docker
Assembleur X86 sous Linux (lien avec C)
Créer un serveur CGI fonctionnant sur Python 3 sur Docker
Introduction facile de la reconnaissance vocale avec Python
[C] [python] Lire avec AquesTalk sous Linux
Créer un environnement Python avec Anaconda sur Mac
[Linux] Créer un environnement Jenkins avec Docker
Lancez l'application Flask avec Docker sur Heroku
Construisez CentOS 8 sur ESXi 6.7 avec une configuration minimale
Construire un environnement de NGINX + NGINX Unit + MySQL avec Docker
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Essai et erreur]
Construction d'un environnement d'analyse de données Python facile avec Windows10 Pro x VS Code x Docker
Créez un environnement LAMP sur votre Docker local
Créer un environnement de développement de langage C avec un conteneur
Créez un environnement WardPress sur AWS avec Pulumi
Préparer l'environnement d'exécution de Python3 avec Docker
Créer un environnement python avec pyenv sur EC2 (ubuntu)
Créer un environnement de développement Python avec Visual Studio Code
Créez un environnement python avec ansible sur centos6
J'ai essayé Flask avec des conteneurs distants de VS Code
[Python] Créer un environnement de développement Django avec Docker
Construire la base de données Oracle 19c sur Oracle Linux 8.3 (deuxième partie de la construction de la base de données)
Convertir le code de caractère du fichier avec Python3
Analyse statique du code Python avec GitLab CI
Utilisez le conteneur de développement Docker facilement avec VS Code
[Blender x Python] Pensez au code avec des symboles
Créer un environnement d'exécution python avec VS Code
GradCAM avec 22 lignes de code. tf_explain peut être facile à utiliser, je le recommande!
Un moyen simple de remplir le début de 0 en fonction du nombre de chiffres dans le nombre [Python]