目录
- 一、示例代码
- 1.1 主函数main.cpp
- 1.2 子函数源文件
- 1.3 子函数头文件
- 二、VS Code编译
- 2.1 报错
- 2.2解决方法
- 三、CMakeLists编译
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编译