Здравствуйте. Такой вопрос. имеется такой код:
---------------------------------------------------------
// bs_pool.h
#ifndef __BS_POOL_H
#define __BS_POOL_H
#include "bs_object_base.h"
namespace blue_sky {
template<class D_TYPE>
class _CLASS_DECLSPEC_PLUGIN_ bs_array_pool : public objbase
{
public: typedef std::list< smart_ptr< bs_array_pool, true > > instp_holder;
protected: static instp_holder inst_list_;
public:
~bs_array_pool() {}
private:
void dispose() const {delete this;};
protected:
bs_array_pool() {}
};
};
#endif // __BS_POOL_H
-----------------------------------------------------------------
//bs_pool.cpp
#include "bs_pool.h"
namespace blue_sky
{
...
template<>
bs_array_pool<int>::instp_holder bs_array_pool<int>::inst_list_;
...
};
-----------------------------------------------------------------
Я его собираю как shared object, с -fPIC, со всем... Но вот загвоздка,
когда вызываю dlopen("./this_one.so",RTLD_LAZY); мне возвращается пустой указатель на NULL...
dlerror() говорит, что:
/home/work/blue-sky/lib/libpool.so: undefined symbol: _ZN8blue_sky13bs_array_poolIiE10inst_list_E
То бишь, не может быть найдена явная спецификация шаблона... (та, что
от int в cpp-файле)...
extern в декларации не помогает, и в дефиниции тоже.
Если убрать дефиницию
template<>
bs_array_pool<int>::instp_holder bs_array_pool<int>::inst_list_;
то библиотека загружается нормально...
Короче мне нужно явно указать пустой шаблон, но это мешает загрузке so
/// Есть выход???
Может кто-нибудь сталкивался уже с такой проблемой...???
Ответ на:
комментарий
от Sectoid
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от Sectoid
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум C++ template linker error (2015)
- Форум Qt Creator. Кто как предпочитает подключать *.ui ? (2010)
- Форум Template в разделяемой библиотеке (2022)
- Форум [shared_ptr] не работает или я кривой? (2011)
- Форум Шаблон класса (2008)
- Форум Проблема с ALSA (2010)
- Форум C++ и указатели на методы (2004)
- Форум [c++] Объектный интерфейс плагинов (2011)
- Форум Проблема с шаблоном класса. (2002)
- Форум 100 dynamic_cast'ов за 1 миллисекунду (2014)