Здравствуйте. Такой вопрос. имеется такой код:
---------------------------------------------------------
// 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)