目录
1、文件目录结构
add.h
add.cpp
main.cpp
CMakeLists.txt
2、CMake构建项目
3、构建工程优化
使用 aux_source_directory(./src SRC_LIST)
4、优化目录,生成可执行文件到bin下
1、文件目录结构
首先来看一下目前的目录结构:
add.h
#ifndef ADD_H
#define ADD_H
int add(int numA, int numB);
#endif
add.cpp
#include "add.h"
int add(int numA, int numB)
{
return numA + numB;
}
main.cpp
#include <iostream>
#include "add.h"
int main()
{
std::cout << "numA + numB = " << add(10,20) <<std::endl;
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(test)
include_directories(./include)
set(SRC_LIST ./src/add.cpp ./src/main.cpp)
add_executable(main ${SRC_LIST})
- cmake_minimum_required(VERSION 2.8)
指定cmake的最小版本。
- project(test)
设置项目名称。
- include_directories(./include)
用来包含头文件目录。
- set(SRC_LIST ./src/add.cpp ./src/main.cpp)
用来定义变量,使用${}取出值。
2、CMake构建项目
进入build目录:
cd build/
执行cmake ..
cmake ..
执行make
make
执行main文件
./main
3、构建工程优化
上述使用:
set(SRC_LIST ./src/add.cpp ./src/main.cpp)
用来指定源码位置,但是如果src文件夹下面有几千几百个源文件的话,难道要添加上百次???
适合源码文件比较少的情况下。
使用 aux_source_directory(./src SRC_LIST)
选择src文件夹下面的所有文件。
cmake_minimum_required(VERSION 2.8)
project(test)
include_directories(./include)
aux_source_directory(./src SRC_LIST)
add_executable(main ${SRC_LIST})
然后执行:
cd build
cmake ..
make
./main
结果展示:
4、优化目录,生成可执行文件到bin下
目录结构:
修改CMakeLists.txt文件:
cmake_minimum_required(VERSION 2.8)
project(test)
add_subdirectory(./src)
当cmake执行到第三行时,去src目录下找CMakeLists.txt文件。
cmake_minimum_required(VERSION 2.8)
project(test)
aux_source_directory(./ SRCLIST)
include_directories(../include)
add_executable(main ${SRCLIST})
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)
EXECUTABLE_OUTPUT_PATH:目标二进制可执行文件存放的位置
PROJECT_SOURCE_DIR:代表的工程的路径
PROJECT_BINARY_DIR:代表编译的是编译的路径
执行如下操作:文章来源:https://www.toymoban.com/news/detail-401572.html
cd build
cmake ..
make
cd ..
cd bin
./main
文章来源地址https://www.toymoban.com/news/detail-401572.html
到了这里,关于【CMake】第2篇 CMake构建.h与.cpp文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!