作者adxis (acer)
看板C_and_CPP
標題[問題] Singleton 與 DLL
時間Sun Jul 12 23:11:07 2009
二話不說 例子先來
// obj.h
class __declspec(dllexport) other{};
typedef Loki::SingletonHolder< other > Other;
class __declspec(dllexport) Obj
{
void UsingOtherSingleton();
};
typedef Loki::SingletonHolder< Obj> SingleObj;
// obj.cpp
void Obj::UsingOtherSingleton()
{
Other::Instance();
}
// main.cpp
#include "obj.h"
int main()
{
SingleObj::Instance();
return 0;
}
問題出在使用 VS 2008 link 的時候會出現 unresolved symbol
似乎是 Loki::LongevityLifetime 裡的 class 沒辦法找到
自己有寫過另一個 Singleton 在內部並未使用其他 Singleton
就沒有遇上這種問題
請問各方高手有無方法可解決阿 ~~?
我自己是有想過要把 template 明確宣告來 export singleton
不過像 Loki::Factory 這種也要套 Singleton 的 pattern
就有點不知如何著手
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.244.140.23
※ 編輯: adxis 來自: 60.244.140.23 (07/12 23:12)
→ avhacker:LongevityLifetime 不是singleton,只是管理生命週期用的 07/13 09:18
→ avhacker:我猜你的 link error 是需要一些 pre-build library 07/13 09:18
→ avhacker:loki 的確有些要 pre-build,翻一下文件吧 07/13 09:19
→ adxis:恩 我知道Singleton跟SmallObj需要 已經有build了咧0rz 07/13 15:45
推 avhacker:可是你都沒貼錯誤訊息,要人家怎麼幫 07/13 16:41
→ adxis:感謝樓上 問題解決囉 有回文~ 07/14 13:10