0
点赞
收藏
分享

微信扫一扫

补充番外14:cmake实践项目笔记(未完待续4/21)

东言肆语 2022-04-21 阅读 48
C++后端

文章目录

一、安装cmake

1)卸载旧版本cmake

 apt-get autoremove cmake

2)文件下载解压:

https://cmake.org/files/v3.9/cmake-3.9.1-Linux-x86_64.tar.gz
tar zxvf cmake-3.9.1-Linux-x86_64.tar.gz

3)查看目录

 tree -L 2 cmake-3.9.1-Linux-x86_64
2 cmake-3.9.1-Linux-x86_64
3 ├── bin
4 │ ├── ccmake
5 │ ├── cmake
6 │ ├── cmake-gui
7 │ ├── cpack
8 │ └── ctest
9 ├── doc
10 │ └── cmake
11 ├── man
12 │ ├── man1
13 │ └── man7
14 └── share
15 ├── aclocal
16 ├── applications
17 ├── cmake-3.9
18 ├── icons
19 └── mime
20 12 directories, 5 files

4)创建软链接

注: 文件路径是可以指定的, 一般选择在 /opt 或 /usr 路径下, 这里选择 /opt

1 mv cmake-3.9.1-Linux-x86_64 /opt/cmake-3.9.1
2 ln -sf /opt/cmake-3.9.1/bin/* /usr/bin/

二、项目

1)单个文件目录实现

(1)基本工程

1 # 单个目录实现
2 # CMake 最低版本号要求
3 cmake_minimum_required (VERSION 2.8)

#指定工程名字,和二进制名字是可以不一样的,可以生成多个执行文件
PROJECT(0VOICE)

4 # 手动加填加文件
5 SET(SRC_LIST main.c)
SET(SRC_LIST2 main2.c)
6 MESSAGE(STATUS "THIS IS BINARY DIR " ${PROJECT_BINARY_DIR})
7 MESSAGE(STATUS "THIS IS SOURCE DIR " ${PROJECT_SOURCE_DIR})
8 ADD_EXECUTABLE(0voice ${SRC_LIST})    //执行文件叫0voice
ADD_EXECUTABLE(0voice2 ${SRC_LIST2})

(2)目录展现

cmakeLists.txt与main.c在同一目录

(3)代码

main.c

#include <stdio.h>
int main(int argc, char *argv[])
{
    printf("0voice2 CMake!!!\n");
    return 0;
}

main2.c

#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("0voice CMake!!!\n");

    return 0;
}

(4)指令

cmake .    //.的位置表示的是cmakelists.txt的位置,配置好
make       //编译
./执行文件   //执行

2)改进工程结构

(1)基本工程

  • 指定安装目录
  • 主目录cmake


# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
PROJECT(0VOICE)

# 添加子目录
ADD_SUBDIRECTORY(src)

#INSTALL(FILES COPYRIGHT README DESTINATION share/doc/cmake/0voice)
# 安装doc到  share/doc/cmake/0voice目录
# 默认/usr/local/
#指定自定义目录,比如 cmake -DCMAKE_INSTALL_PREFIX=/tmp/usr ..
INSTALL(DIRECTORY doc/ DESTINATION share/doc/cmake/0voice)

在这里插入图片描述

  • src目录的cmake
# 单个目录实现
# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 工程
# PROJECT(0VOICE)
# 手动加入文件
SET(SRC_LIST main.c)
MESSAGE(STATUS "THIS IS BINARY DIR " ${PROJECT_BINARY_DIR})
MESSAGE(STATUS "THIS IS SOURCE DIR " ${PROJECT_SOURCE_DIR})

ADD_EXECUTABLE(youzi ${SRC_LIST})

# 将执行文件安装到bin目录
# 默认/usr/local/
#指定自定义目录,比如 cmake -DCMAKE_INSTALL_PREFIX=/tmp/usr ..
INSTALL(TARGETS youzi RUNTIME DESTINATION bin)

(2)目录展现

1 .
2 ├── build
3 ├── CMakeLists.txt
4 ├── doc
5 │  ├── darren.txt
6 │  └── README.MD
7 └── src
8     ├── CMakeLists.txt
9     └── main.c

(3)代码

main.c

#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("0voice CMake!!!\n");

    return 0;
}

(4)指令

cmake -DCMAKE_INSTALL_PREFIX=/tmp/usr .. 
make install
cd xxx
./执行文件

3)多个目录实践编译

(1)基本工程

(2)目录展现

(3)代码

(4)指令

4)

(1)基本工程

(2)目录展现

(3)代码

(4)指令

5)

(1)基本工程

(2)目录展现

(3)代码

(4)指令

举报

相关推荐

0 条评论