2014-02-20 172 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相關的。

儘管如此,您仍然需要鏈接核心庫,但它可以使架構更加模塊化。