W swoim projekcie mam zamiar podzielic czesc kodu na dll'e. Mam nstd.dll(bilbioteka z podstawowymi typami, jak string, smartptr itd) i kernel.dll(czesc frameworka). Gdy dolaczam liba i dll nstd do dowolnej zwyklej aplikacji, to wszystko dziala bez zarzutu. Ale jak chcialem dodac tak samo nstd.dll do kernel.dll, to budujac dostaje unresolved external, oto wycinek kodu:
namespace nstd{
class EXPORT String{
public:
// konstruktory, metody itd.
protected:
static std::vector<wchar_t*> m_unicodeAllocs;
// i dalej reszta.
};
}
A oto blad:
Console.obj : error LNK2001: unresolved external symbol "protected: static class std::vector<wchar_t *,class std::allocator<wchar_t *> > nstd::String::m_unicodeAllocs" (?m_unicodeAllocs@String@nstd@@1V?$vector@PA_WV?$allocator@PA_W@std@@@std@@A)
ConsoleAlias.obj : error LNK2001: unresolved external symbol "protected: static class std::vector<wchar_t *,class std::allocator<wchar_t *> > nstd::String::m_unicodeAllocs" (?m_unicodeAllocs@String@nstd@@1V?$vector@PA_WV?$allocator@PA_W@std@@@std@@A)
E:\Programming\Projects\C++\ionic_engine\\bin\kernel\kerneld.dll : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://e:\Programming\Projects\C++\ionic_engine\vsfiles\kernel\obj\Debug\BuildLog.htm"
kernel - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
Czepia sie tylko tej jednej statycznej skladowej, nie mam pojecia o co chodzi :/ Bylbym wdzieczny za pomoc :)
Pozdr!
novo.