栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

vscode+cmake 实现C++项目的完整编译

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vscode+cmake 实现C++项目的完整编译

1.项目目录
.
├── bin
├── build
├── CMakeLists.txt
├── include
│   ├── array_2d.h
│   ├── common.h
│   └── swap.h
├── lib
└── src
    ├── array_2d.cpp
    ├── main.cpp
    └── swap.cc
  • bin:存放可执行二进制文件
  • build:存放编译文件
  • include:存放头文件
  • src:存放源文件
  • lib:存放库
  • CMakeLists.txt:cmake文件
2.CMakeLists.txt文件
cmake_minimum_required(VERSION 2.8)
project(bilibli)

set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS "-std=c++11 -O3")

# cmake文件目录
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/build)

# 可执行二进制文件目录
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

# 库文件目录
set(LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
link_directories(${PROJECT_SOURCE_DIR}/lib)

# 头文件目录
include_directories(${PROJECT_SOURCE_DIR}/include)

# 添加静态库
add_library(mylib STATIC
            src/array_2d.cpp
            src/swap.cc
            )

# 生成可执行文件
add_executable(main src/main.cpp)

# 链接静态库
target_link_libraries(main mylib)

3.编译和链接(cmake、make)
cd ./build
cmake ..
make
  • make之后的项目目录
.
├── bin
├── build
├── CMakeLists.txt
├── include
│   ├── array_2d.h
│   ├── common.h
│   └── swap.h
├── lib
└── src
    ├── array_2d.cpp
    ├── main.cpp
    └── swap.cc

5 directories, 7 files
wxy@wxy-linux:~/C++learning/bilibli$ tree
.
├── bin
│   └── main
├── build
│   ├── CMakeCache.txt
│   ├── CMakeFiles
│   │   ├── 3.16.3
│   │   │   ├── CMakeCCompiler.cmake
│   │   │   ├── CMakeCXXCompiler.cmake
│   │   │   ├── CMakeDetermineCompilerABI_C.bin
│   │   │   ├── CMakeDetermineCompilerABI_CXX.bin
│   │   │   ├── CMakeSystem.cmake
│   │   │   ├── CompilerIdC
│   │   │   │   ├── a.out
│   │   │   │   ├── CMakeCCompilerId.c
│   │   │   │   └── tmp
│   │   │   └── CompilerIdCXX
│   │   │       ├── a.out
│   │   │       ├── CMakeCXXCompilerId.cpp
│   │   │       └── tmp
│   │   ├── cmake.check_cache
│   │   ├── CMakeDirectoryInformation.cmake
│   │   ├── CMakeOutput.log
│   │   ├── CMakeTmp
│   │   ├── main.dir
│   │   │   ├── build.make
│   │   │   ├── cmake_clean.cmake
│   │   │   ├── CXX.includecache
│   │   │   ├── DependInfo.cmake
│   │   │   ├── depend.internal
│   │   │   ├── depend.make
│   │   │   ├── flags.make
│   │   │   ├── link.txt
│   │   │   ├── progress.make
│   │   │   └── src
│   │   │       └── main.cpp.o
│   │   ├── Makefile2
│   │   ├── Makefile.cmake
│   │   ├── mylib.dir
│   │   │   ├── build.make
│   │   │   ├── cmake_clean.cmake
│   │   │   ├── cmake_clean_target.cmake
│   │   │   ├── CXX.includecache
│   │   │   ├── DependInfo.cmake
│   │   │   ├── depend.internal
│   │   │   ├── depend.make
│   │   │   ├── flags.make
│   │   │   ├── link.txt
│   │   │   ├── progress.make
│   │   │   └── src
│   │   │       ├── array_2d.cpp.o
│   │   │       └── swap.cc.o
│   │   ├── progress.marks
│   │   └── TargetDirectories.txt
│   ├── cmake_install.cmake
│   ├── libmylib.a
│   └── Makefile
├── CMakeLists.txt
├── include
│   ├── array_2d.h
│   ├── common.h
│   └── swap.h
├── lib
└── src
    ├── array_2d.cpp
    ├── main.cpp
    └── swap.cc

4.运行可执行文件
wxy@wxy-linux:~/C++learning/bilibli/bin$ ./main
  • 运行结果如下
2,1

***********以上就是利用cmake实现编译一个完整C++项目的步骤。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938204.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号