Opengl glm使用什么编译/链接机制?

Opengl glm使用什么编译/链接机制?,opengl,glm-math,Opengl,Glm Math,我目前正在使用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! #包括 //我们实际上没有包含任何*.inl文件 //在glm.hp

我目前正在使用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!
#包括
//我们实际上没有包含任何*.inl文件
//在glm.hpp(或任何*.hpp文件)中也不包括!

但编译时,它没有错误

从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)。您对的看法是正确的,它们包含在标题中。标头有防护装置,因此不会有重复。

来自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)。您对的看法是正确的,它们包含在标题中。头文件有防护装置,所以不会有重复。

实际上,我现在在一些头文件中看到一些
#include“*.inl”
删除,所以,如果我们在自己的项目中的多个
*.cpp
文件中包含一个头文件,这些函数是否重复?实际上,我现在在一些头文件中看到一些
#include“*.inl”
删除,所以,如果我们在自己的项目中的多个
*.cpp
文件中包含一个标题,那么这些函数是否重复了?并非所有的BOOST都是只包含标题的libs;)但是答案是+1:)例如,我有两个文件:
a.cpp
b.cpp
。在这些文件中,我包括:
glm/glm.hpp
glm/gtc/matrix_transform.hpp
,因此,如何防止两个函数重复应用(我的意思是一个函数-例如,
gtm::perspective
a.obj
b.obj
)简言之,不用担心。透视图是一个函数模板,标头有一个模板,而不是函数定义。长答案超出了原始问题的范围,但如果您查找模板实例化,您可能会走上正轨但是答案是+1:)例如,我有两个文件:
a.cpp
b.cpp
。在这些文件中,我包括:
glm/glm.hpp
glm/gtc/matrix_transform.hpp
,因此,如何防止两个函数重复应用(我的意思是一个函数-例如,
gtm::perspective
a.obj
b.obj
)简言之,不用担心。透视图是一个函数模板,标头有一个模板,而不是函数定义。长答案超出了原始问题的范围,但如果您查找模板实例化,您可能会找到正确的答案。