- 允许重用语言。
- 如果项目规模大,可以帮助用代码创建模块或库并多次重用代码。
确保Engine配置类型为lib静态库,而Game配置类型为exe可执行文件。(输出目录和中间目录没有配置会导致错误)
包含解决方案之外的东西,也就是完全与项目无关的外部依赖项,就使用尖括号。
如果是在解决方案中写的东西,就使用引号,来表明这是我们的源文件之一。
在Engine下新建Engine.h
#pragma once
namespace engine {
void PrintMessage();
}
Engine.cpp
#include<iostream>
#include"Engine.h"
namespace engine{
void PrintMessage() {
std::cout << "hello" << std::endl;
}
}
在Game下新建application.cpp
#include<Engine.h>
#include<iostream>
int main() {
engine::PrintMessage();
std::cin.get();
}
引入其他解决方案中的头文件的方式有几种:
1.使用相对本文件路径,一般在实际开发中,并不推荐这样使用,可变性太强,容易导致错误。
#include"../../Engine/src/Engine.h"
2.使用项目路径在配置中引用。
#include"Engine.h"
但此时Engine.h还并没有与Game解决方案相链接,我们需要:
在这里勾选出要引用的文件,在外部依赖项中可以看到其被引入。
当然像Engine是Game所依赖的,如果Engine有所改动,启动Game会发现存在一些问题。就比如清理解决方案后,构建Game,可以看到也是先构建的Engine。
这时将生成出的exe文件移到别的文件夹下,也是可以运行的,说明已经链接成功了。