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
.
├── 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++项目的步骤。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)