我目前正在使用 OpenGL 使用 glm 库,我看到每个头文件 (*.hpp) 都有自己的实现文件 (*.inl),但是每次编译项目时它如何自动编译(或链接)glm?例如:
#include <glm/glm.hpp>
// We actualy dont included any *.inl files
// And in glm.hpp (or any *.hpp files) are not included too!
但是编译的时候没有报错!
从 glm/glm/core/dummy.cpp:
/// GLM is a header only library. There is nothing to compile.
/// dummy.cpp exist only a wordaround for CMake file.
所以你必须在你的项目中包含标题,就是这样(类似于 boost)。您对.inl 文件是正确的,它们包含在标题中。标头有守卫,所以不会有重复。