将包含头的库包含在多个文件中,从而产生链接器错误

时间:2018-03-28 19:25:25

标签: c++ linker header-files header-only

我使用的是仅限标题的单个文件"库"加载glm - 模型从文件到图形程序。弹出一个简单的链接器错误:

  

LNK2005"信息在这里"已在main.obj中定义

现在我知道这意味着什么,通常我会继续将实现移到单独的文件中。但是,这是一个比我聪明的人提供的文件,所以依靠权威,我希望这个东西可以工作。

它只会抱怨向量乘法运算符重载和其他函数的负载中的单个函数:

{{1}}

这些功能有什么特别之处吗?

该文件来自OBJ Loader,我修改后只是为了使用我目前在其他地方使用的{{1}}向量和实用程序。

1 个答案:

答案 0 :(得分:0)

  

这些功能有什么特别之处吗?

是的,它们没有像inline命名空间中的所有其他免费函数一样标记为algorithm

在头文件中定义函数时,需要将其标记为内联,以便可以在多个转换单元(包含在多个源文件中)中定义它而不会出现错误。