Добавлено: CMake
This commit is contained in:
parent
8e59b291ff
commit
3b5902c2bf
|
@ -1,5 +1,6 @@
|
|||
# Программирование
|
||||
|
||||
- [CMake](src/cmake.md)
|
||||
- [Работа с библиотеками](src/libs.md)
|
||||
|
||||
## [Язык программирования C](c)
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
# CMake
|
||||
|
||||
## Сборка проекта
|
||||
|
||||
Для сборки проекта `CMake` необходимо создать каталог, в котором будет производиться сборка. Чтобы не "засорять" директорию с исходниками (например, `project`), лучше создать каталог сборки рядом с ней (например, `build_project`):
|
||||
|
||||
```sh
|
||||
.
|
||||
├── build_project
|
||||
└── project
|
||||
```
|
||||
|
||||
Перейти в каталог `build_project` и выполнить команду **конфигурирования** проекта для последующей сборки и установки:
|
||||
|
||||
```sh
|
||||
cmake -B <destination> -S <sources> -DCMAKE_INSTALL_PREFIX=<path_install> -DCMAKE_BUILD_TYPE=Release <more keys>
|
||||
```
|
||||
|
||||
где
|
||||
|
||||
- `<destination>` - путь, куда конфигурировать проект
|
||||
- `<sources>` - путь к проекту, который необходимо собрать
|
||||
- `<path_install>` - путь инсталляции, куда необходимо установить собранный проект соответствующей командой
|
||||
- `<more keys>` - перечисление остальных аргументов конфигурации
|
||||
|
||||
В итоге на текущем примере строка конфигурирования будет выглядеть так:
|
||||
|
||||
```sh
|
||||
cmake -B . -S ../project -DCMAKE_INSTALL_PREFIX=$(pwd)/../install_project -DCMAKE_BUILD_TYPE=Release
|
||||
```
|
||||
|
||||
Далее выполнить сборку и установку проекта:
|
||||
|
||||
```sh
|
||||
cmake --build . --target install -j4
|
||||
```
|
||||
|
||||
где
|
||||
|
||||
- `.` - является теущим каталогом сконфигурированных исходников
|
||||
- `-j4` - использование количества потоков (`4`) при компиляции исходников
|
||||
|
||||
После выполнения команды в каталоге `install_project` будет находиться установленный проект:
|
||||
|
||||
```sh
|
||||
.
|
||||
├── build_project
|
||||
├── install_project
|
||||
└── project
|
||||
```
|
Loading…
Reference in New Issue