Возникла следующая проблема: хотелось бы использовать в ruby-проекте алгоритмы реализованные на c++. Для того, что бы сконнектить между собой ruby и с++ решил использовать
swig. Для конвертинга типов в swig'е есть механизм typemaps, причем для STL есть готовая реализация этих тайпмапов, достаточно в интерфейсный файл включить std_string.i (для std::string). Но вот беда, даже
пример из свиговской доки не работает: когда в руби загружается полученный экстеншн
require 'test' # здесь test - название экстеншна
вылазит ошибка:
LoadError: /usr/lib/ruby/site_ruby/1.8/i586-linux/test.so: undefined symbol: _ZNSs4_Rep20_S_empty_rep_storageE — /usr/lib/ruby/site_ruby/1.8/i586-linux/test.so.
Скорее всего подобное ожидает и std::vector, std::map и т.д. Возможно кто-нибудь сталкивался с подобным и знает как это побороть?