2014-02-20 130 views
0

我正在重构框架的过程中,我可以使用一些建议的设计。考虑以下几点:C++:静态库引用静态库

gl_utils.lib包含结构:

namespace gl_utils 
{ 
    struct LVec2 
    { 
     GLfloat x; 
     GLfloat y; 
     LVec2() {} 
     LVec2(GLfloat x, GLfloat y): x(x), y(y) {} 
    }; 
} 

然而animation_utils.lib包含不同的静态库使用结构的对象:

#include "gl_utils.h" 
using namespace gl_utils; 

class Part 
{ 
    public: 
     LVec2 Location; 
     float Rotation; 
     LVec2 Scaling; 
     int Index; 
     int Flip; 

     Part(); 
}; 

这是一个坏主意?有没有一种安全的方式让图书馆互相建立,还是有一种我忽略的技术?

+0

看起来很好....我有一些具体的问题,或者你只是追逐“设计模式”? –

回答

1

这很好。你必须记录它,但是因为最终的可执行文件或共享库将需要与两个静态库链接。

如果你不想在gl_utils中引入对animation_utils的依赖,你可以引入一个核心库来保存LVec2(可能还有其他类型)结构,因为它不仅仅是gl相关的。

尽管如此,您仍然需要链接核心库,但它可以使架构更加模块化。