CMakeLists分文件编写C++工程


Windows 10 + Ubuntu 20.04 + VS Code


1 文件结构

1.1 结构一

在这里插入图片描述

1.2 结构二

在这里插入图片描述

2 示例代码

2.1 main.cpp

#include "swap.h"
int main(int argc, char** argv)
{
    swap myswap(10,100);	//类实例化为对象
    myswap.printInfo();  //打印交换前数值
    myswap.run( );  //完成数据交换功能
    myswap.printInfo();
 
    return 0;
}

2.2 头文件swap.h

#pragma once //防止头文件重复包含
#include <iostream>
// 创建类实现
class swap
{
public:

    //为私有变量赋值的构造函数
    swap(int a, int b)
    {
        this->_a = a;   //this指针,指示_a是类中的属性变量;
        this->_b = b;   //这样即使类外有重名的_a变量也不会搞混淆
    }
    //创建两个接口函数
    void run();       //交换两个数
    void printInfo(); //打印两个数

private:
    int _a;
    int _b;
};

2.3 源文件

#include "swap.h"
//实现两个数的交换
void swap::run( )
{
    int temp;
    temp=_a;
    _a=_b;
    _b=temp;
}
//实现两个数的值打印
void swap:: printInfo( )
{
    std::cout<<"_a= "<<_a<<std::endl;
     std::cout<<"_b= "<<_b<<std::endl;
}

2.4 CMakeLists.txt文件

2.4.1 文件结构一

使用aux_source_directory命令查找制定目录下所有的源文件,然后把结果保存进指定的变量名,语法格式为:
aux_source_directory(<dir> <variable>)

# CMake最低版本要求
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
# 项目信息
project(multi_files)
# 指定当前目录下的源文件,保存到<ALL_SRCS>变量中
aux_source_directory(. ALL_SRCS)
# 制定生成目标
add_executable (multi_files main.cpp swap.cpp ${ALL_SRCS})

2.4.1 文件结构二

多了一行include_directories

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)

project(multi_files)

aux_source_directory(. ALL_SRCS)

include_directories(include)

add_executable (multi_files src/main.cpp src/swap.cpp ${ALL_SRCS})

3 运行方式

cd build
cmake ..
make
./multi_files

4 运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可见一班

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值