Annuaire d'articles
une relation
1 gcc
est un compilateur . Convertissez le code source en fichiers exécutables.
Lorsque votre programme ne possède qu’un seul fichier source, vous pouvez directement utiliser la commande gcc pour le compiler. Mais lorsque votre programme contient de nombreux fichiers sources et que vous utilisez la commande gcc pour les compiler un par un, vous serez facilement confus et aurez une lourde charge de travail, c'est pourquoi l'outil make est apparu.
2 make
est un outil de traitement par lots . Gérer le processus de compilation tout au long du projet. Il est basé sur le makefile.
3 makefile
est un fichier texte utilisé pour commander make . Il contient une série de règles et de commandes. L'outil make lit les règles du makefile pour déterminer quels fichiers doivent être recompilés et quelles commandes exécuter pour terminer le processus de compilation.
Le makefile peut être écrit à la main dans certains projets simples, mais lorsque le projet est très volumineux, l'écriture manuscrite du makefile est également très gênante, et si la plate-forme est modifiée, le makefile devra être à nouveau modifié. A cette époque, l'outil Cmake est apparu.
4 cmake
est un outil de construction multiplateforme . cmake peut générer plus facilement des makefiles à utiliser par make.
5 cmakelist
est un fichier texte utilisé pour commander cmake .
URL de référence : http://t.csdn.cn/iNMcN
2 gcc
Mise en place :
sudo apt update
sudo apt install build-essential gdb
2.1 Processus de compilation
- Macro d'extension Prétraitement-E .i
- Compiler -S .s c->Assembler
- Assemblage-c .o Assemblage->Binaire
- lien -o fichier bin
2.2 Paramètres de compilation
1 -g avec les informations de débogage
2 -O2 optimiser le code source
3 -l -L spécifie le fichier de bibliothèque | spécifie le chemin du fichier de bibliothèque
4 -I précise le répertoire de recherche du fichier d'en-tête
5 -Le mur imprime des messages d'avertissement
6 -w désactive les messages d'avertissement
7 -std=c++11 Définir la norme de compilation
8 -o spécifie le nom du fichier de sortie
9 -D définit la macro
2.3 Bibliothèques statiques et bibliothèques dynamiques
1 suffixe
- Nom du suffixe de la bibliothèque statique :
.a
- Nom du suffixe de la bibliothèque dynamique :
.so
2 Connexions et différences
- Les bibliothèques statiques sont liées au programme cible lors de la compilation et font partie du programme. L'avantage est que le fichier exécutable ne dépend pas de bibliothèques externes lors de son exécution. L'inconvénient est que la taille du fichier est plus grande.
- La bibliothèque dynamique ne sera pas copiée dans le fichier exécutable final, économisant ainsi de la mémoire et des problèmes de compatibilité.
2.4 Débogueur GDB
-
Installer
sudo apt update sudo apt install build-essential gdb
-
Besoin de compiler avec -g
gcc -g main.c -o principal
1 Commandes couramment utilisées
C'est make、makefile
Quatre cmake, cmakelist
4.1 Caractéristiques grammaticales
4.2 Commandes importantes
# CMake最小版本要求为2.8.3
cmake_minimum_required(VERSION 2.8.3)
# 指定工程名为HELLOWORLD
project(HELLOWORLD)
# 定义SRC变量,其值为sayhello.cpp hello.cpp
set(SRC sayhello.cpp hello.cpp)
# 将/usr/include/myincludefolder 和 ./include 添加到头文件搜索路径
include_directories(/usr/include/myincludefolder ./include)
# 将/usr/lib/mylibfolder 和 ./lib 添加到库文件搜索路径
link_directories(/usr/lib/mylibfolder ./lib)
# 通过变量 SRC 生成 libhello.so 共享库
add_library(hello SHARED ${SRC})
# 添加编译参数 -Wall -std=c++11 -O2
add_compile_options(-Wall -std=c++11 -O2)
# 编译main.cpp生成可执行文件main
add_executable(main main.cpp)
# 将hello动态库文件链接到可执行文件main
target_link_libraries(main hello)
# 添加src子目录,src中需有一个CMakeLists.txt
add_subdirectory(src)
# 定义SRC变量,其值为当前目录下所有的源代码文件
aux_source_directory(. SRC)
# 编译SRC变量所代表的源代码文件,生成main可执行文件
add_executable(main ${SRC})
4.2 Variables importantes
4.3 Processus de compilation
- 1 Écrivez CMakeLists.txt
- 2 Exécutez la commande : cmake chemin pour générer le makefile
- 3 Exécuter la commande : make
4.4 Deux méthodes de construction
CinqVscode
5.0 Touches de raccourci couramment utilisées
touche de raccourci | Fonction |
---|---|
Commentaires de ligne | ctrl+/ |
bloquer les commentaires | ctrl+maj+A |
Déplacer la ligne actuelle | alt+haut/bas |
panneau de commande | ctrl+maj+p |
Aller au dossier | ctrl+p |
Aller à la rangée | ctrl+g |
Terminal ouvert | ctrl+~ |
renommer la variable | F2 |
Ouvrir/fermer la barre latérale | ctrl+B |
Division de l'éditeur | ctrl+\ |
vignette | Barre de menu : Affichage/Apparence |
Indentation du code | ctrl+[/] |
Formatage des codes | ctrl+maj+I |
Insérez une ligne ci-dessous | ctrl+entrée |
passer à la définition | F12 |
Zoom avant et arrière sur la zone d'édition | ctrl+ -/+ |
5.1 Interfaces
Quatre zones principales : barre de menu, barre latérale, zone d'édition, barre d'état