對不起,標題,但希望說明更清晰。運營商新已定義在自定義內存管理器庫
在momemnt我有一個與其他庫(如libpng,libvorbis等)一起構建的主應用程序。我試圖添加libtheoraplayer到主應用程序,但我一直遇到問題:
1)鏈接到一個預構建的libib庫,幷包括適當的頭文件給我一個錯誤,說pushMemoryManager無法找到(我們的自定義內存管理器的一部分)
2)與主應用程序一起構建庫導致鏈接器錯誤「error LNK2005:」void * __cdecl operator new(unsigned int,void *)「(?? 2 @ YAPAXIPAX @ Z)已經在win32Mem.obj中定義了「
我不太確定從哪裏開始調試。主應用程序不支持STL,我開始將libtheoraplayer中對STL的引用更改爲我們自己的STL替換,但在查找有問題的文件並更改它們之後,我仍然收到錯誤2。
任何狂野的想法?
替換標準庫(如果只有STL的一部分)是愚蠢的,除非你有一個很好的理由。 –
有一個很好的理由來取代STL。較早版本的Microsoft STL吸引了大量時間,STL的一些組件仍然存在。但是,替換它們的分配器幾乎是不可能的。 –