Решил попробовать изменить пример из предыдущего поста: вместо double использовать std::string. swig предоставляет кучу уже готовых typemaps, в том числе для stl. Теперь файл type.i получился таким:
Пересобрал экстеншн и запустил такой тест:
И... при загрузке расширения вылезла ошибка: 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.
Оказалось, что вся проблема в Makefile: по умолчанию компилятор указывается gcc. Что бы исправить это, добавил в скрипт, генерящий Makefile, одну строчку:
Теперь std::string успешно конвертится в ruby-строки и наобород.
четверг, 8 ноября 2007 г.
Опыты со SWIG'ом: std::string и Ruby
Автор: sash_ko на 20:14
Ярлыки: Программизм, Ruby
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий