我建立了一个C++库,用于在大多数已知平台上制作游戏,它运行良好。然而,我在链接器上遇到了一个小问题,如果不弄清楚答案,我就无法忍受。
我在两个不同的文件中有两个独立的类:
KinesisWorld
在里面
KinesisWorld.h
和
ASEngine
在里面
ASEngine.h
它们两者在实现方面具有相似的行为,它们封装了由其他库提供的功能,
KinesisWorld运动世界
继承和调用
Box2D
功能和
A发动机
电话
angelscript
功能。到现在为止,一直都还不错。
现在,当我构建一个使用我的库的应用程序时,只要我不包含或使用
KinesisWorld运动世界
,链接器不会尝试链接
方框2D
图书馆只要我简单地包括
KinesisWorld.h
在最终可执行文件源的某个地方,它会立即抱怨未定义的引用,直到我添加
方框2D
到链接器。这是我在其他库中一直知道并观察到的行为。
尽管如此
天使脚本
,不包括
A发动机.h
总之,它总是抱怨对的未定义引用
天使脚本
,即使最终的可执行文件没有对其进行任何引用。
你知道是什么导致了这样的事情吗?我在Linux 32位和Windows 32位上测试了它,分别使用GCC和Visual Studio,行为相同。