【发布时间】:2021-08-26 14:42:56
【问题描述】:
当我对我的代码进行更改时,外部文件会被编译多次。我正在使用数学库 glm,Visual Studio 似乎多次编译完全相同的 glm/vec3.hpp 文件。我已经多次包含glm header了,好像没有使用之前编译过的代码,而是重新编译了一遍。
例如,在我的 math.h 中我已经包含了。
#ifndef MATH_HH
#define MATH_HH
#include <glm/glm.hpp>
#include <glm/gtx/quaternion.hpp>
...
当我在更改代码后进行编译时,我看到 Visual Studio 多次编译 glm/vec3.hpp。基本上它每次编译我编辑的文件之一时都会编译它。
例如,Visual Studio 输出如下所示:
1>C:\test\external\glm\glm\detail\type_vec3.hpp(50,1): warning C4201: nonstandard extension used: nameless struct/union
...
10>own_file.cc
11>C:\test\external\glm\glm\detail\type_vec3.hpp(50,1): warning C4201: nonstandard extension used: nameless struct/union
...
有没有办法防止这种情况发生?还是每次某些 cpp 文件使用它们时都需要编译它们?还是我只是对 Visual Studio 的样式警告感到困惑?
【问题讨论】:
标签: c++ visual-studio compilation include glm-math