[LINUX] Einfache Erstellung von C ++ - Code mit CMake auf Docker

Einführung

guter Punkt

--Stellen Sie den lokalen Ordner ein

Anwendungsbeispiel

-① Legen Sie die CPP-Datei und die Datei CMakeLists.txt im Ordner cpp ab

Ordnerstruktur

tree


Ordnerstruktur
├── Dockerfile
├── docker-compose.yml
└── cpp ← Automatisch generiert

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

Wie benutzt man

Container starten

Unmittelbare Umwelt


#Erster Start des Containers
docker-compose up -d

#Geben Sie den laufenden Container ein
docker-compose run cmake

Quellcode kompilieren

@make_container


#Geben Sie den Ordner cpp im Container ein
cd cpp

#Erstellen Sie den Build-Ordner und geben Sie ihn ein
mkdir build
cd build

#Führen Sie cmake aus
cmake ../

#Führen Sie make aus
make

wichtiger Punkt

Lernprogramm

―― Im Folgenden wird vorgestellt, wie der Quellcode mit der Aufschrift "Hello CMake!" Erstellt wird. --Erstellen Sie die folgenden zwei Dateien im Ordner cpp.

Konfiguration im cpp-Ordner


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

main.cpp


#include <iostream>
#include <string>

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

CMakeLists.txt


#Projektname
project("testCMake")

#Stellen Sie die CMake-Version ein
cmake_minimum_required(VERSION 2.8)

# testCMake.Die aufgerufene ausführbare Datei ist main.Erstellt aus cpp
add_executable(testCMake main.cpp)

@cmake_container


#Geben Sie den Ordner cpp im Container ein
cd cpp

#Erstellen Sie einen Build-Ordner
mkdir build
cd build

#Build-Ausführung
cmake ../
make

@cmake_container


./testCMake 
Hello CMake!

herunterladen

--Bitte lesen Sie diesen Artikel, wie Sie CMake verwenden.

Recommended Posts

Einfache Erstellung von C ++ - Code mit CMake auf Docker
Einfache mehrsprachige C / C ++ - Bindung mit CMake + SWIG
Erstellen Sie mit Docker auf RaspberryPi3 eine Python + Flasche + MySQL-Umgebung! [Einfache Konstruktion]
Verwenden von Docker (Hyper-V) mit PyCharm unter Windows 10 (Stand August 2017)
Rufen Sie den Hostnamen des Host-PCs mit Docker unter Linux ab
GPU-fähiger Build der LibTorch-App (PyTorch C ++) unter Windows ohne CMake (nur beim ersten Mal)
Docker bauen Python basierend auf alpinen
Einfacher Slackbot mit Docker und Errbot
Einfache Installation von OpenCV auf RaspberryPi 3+
Erstellen Sie eine Deb-Datei mit Docker
Erstellen Sie eine MySQL + Python-Umgebung mit Docker
"Cython" -Tutorial, das Python explosiv macht: Wenn C ++ - Code von der Bibliothek abhängt. Zuallererst CMake.
Bearbeiten Sie die Datei des SSH-Verbindungszielservers auf dem Server mit VS-Code
Erstellen Sie das Lasttest-Tool Locust 1.1 auf Docker
X86 Assembler unter Linux (Verknüpfung mit C)
Erstellen Sie einen CGI-Server, der unter Python 3 in Docker ausgeführt wird
Einfache Einführung der Spracherkennung mit Python
[C] [Python] Lesen mit AquesTalk unter Linux
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
Starten Sie die Flask-Anwendung mit Docker auf Heroku
Erstellen Sie CentOS 8 unter ESXi 6.7 mit minimaler Konfiguration
Erstellen Sie mit Docker eine Umgebung aus NGINX + NGINX Unit + MySQL
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
Erstellen Sie mit Docker auf RaspberryPi3 eine Python + Flasche + MySQL-Umgebung! [Versuch und Irrtum]
Einfache Erstellung einer Python-Datenanalyseumgebung mit Windows 10 Pro x VS Code x Docker
Erstellen Sie eine LAMP-Umgebung auf Ihrem lokalen Docker
Erstellen Sie eine Entwicklungsumgebung für die C-Sprache mit einem Container
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
Erstellen Sie eine Python-Umgebung mit pyenv auf EC2 (Ubuntu)
Erstellen Sie eine Python-Entwicklungsumgebung mit Visual Studio Code
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Ich habe Flask mit Remote-Containern von VS Code ausprobiert
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Erstellen Sie Oracle Database 19c unter Oracle Linux 8.3 (zweiter Teil der DB-Konstruktion)
Konvertieren Sie den Zeichencode der Datei mit Python3
Statische Analyse von Python-Code mit GitLab CI
Verwenden Sie den Docker-Entwicklungscontainer bequem mit VS Code
[Blender x Python] Denken Sie an Code mit Symbolen
Erstellen Sie eine Python-Ausführungsumgebung mit VS-Code
GradCAM mit 22 Codezeilen. tf_explain ist möglicherweise einfach zu bedienen, ich empfehle es!
Einfache Möglichkeit, 0 abhängig von der Anzahl der Ziffern vorangestellt [Python]