C++分文件编写VS Code和CMakeLists使用详解
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
Windows 10 + Ubuntu 20.04 + VS Code
一、示例代码
1.1 主函数main.cpp
要用双引号包含子函数的头文件第二行
#include<iostream>
#include "swap.h"
using namespace std;
int main()
{
int a = 10;
int b = 20;
swap(a,b);
return 0;
}
1.2 子函数源文件
要用双引号包含子函数的头文件第一行
定义子函数具体内容
#include "swap.h"
void swap(int a, int b)
{
int stem = a;
a = b;
b = stem;
std::cout << "a: " << a << std::endl;
std::cout << "b: " << b << std::endl;
}
1.3 子函数头文件
包含通用 iostream第一行
声明该子函数
#include<iostream>
using namespace std;
void swap(int a, int b);
二、VS Code编译
2.1 报错
在VS Code中新建文件写入上述代码并ctrl+s保存。选择系统里的编译器编译时报错
undefined reference to `swap(int, int)’
2.2解决方法
将子函数分文件路径添加到tasks.json中使其链接到子函数源文件。记得保存一下再编译
可以点击小三角编译也可以在终端输入指令编译
三、CMakeLists编译
使用aux_source_directory命令查找制定目录下所有的源文件然后把结果保存进指定的变量名语法格式为
aux_source_directory(<dir> <variable>)
# CMake最低版本要求
cmake_minimum_required(VERSION 2.8)
# 项目信息
project(fuction_files)
# 指定当前目录下的源文件保存到<ALL_SRCS>变量中
aux_source_directory(. ALL_SRCS)
# 制定生成目标
add_executable (fuction_files main.cpp swap.cpp ${ALL_SRCS})
参考资料
链接: VS Code编译
链接: CMakeLists编译