参考1、 https://blog.csdn.net/GW569453350game/article/details/77934568
2、https://stackoverflow.com/questions/34208154/inline-functions-in-cpp-files-of-shared-libraries
- 如果将函数的实现放在头文件中,那么每一个包含该头文件的cpp文件都将得到一份关于该函数的定义,那么链接器会报函数重定义错误。
- 如果将函数的实现放在头文件,并且标记为 inline 那么每一个包含该头文件的cpp文件都将得到一份关于该函数的定义,并且链接器不会报错。
- 如果将函数的实现放在cpp文件中,并且没有标记为inline,那么该函数可以被连接到其他编译单元中。
- 如果将函数的实现放在cpp文件中,并且标记为inline, 那么该函数对其他编译单元不可见,也就是其他cpp文件不能连接该函数库。这就是标题中出现的 … undefined reference to …