From: Thorsten Hater Date: 2009-12-18T23:02:44+09:00 Subject: Re: [ANN] rb++ / rbgccxml 0.9.1 Hi, I seem to have something like a bug in rb++. For the case that I want to wrap a simple method the extension doesn't compile because of multiple definitions. The issue is somewhat tricky since when I have a previously compiled extension and merely extend the header file, it compiles fine. Here test case: wrapper.rb require 'rubygems' require 'rbplusplus' include RbPlusPlus Extension.new "test" do |ext| ext.sources ["/home/thor/rb++/test.hpp"] ext.module "Test" do |mod| node = mod.namespace "T" end end test.hpp #ifndef TEST #define TEST #include namespace T { void test() { std::cout << "i'm just sitting here" << std::endl; } } #endif The error is encountered also if I have a class before the function test. Thorsten Jason Roelofs wrote: > What is rb++ / rbgccxml? > > Rb++, rbgccxml, and rice compose a suite of tools that make wrapping C++ > libraries into > Ruby extensions as simple as possible. This is built as a replacement for > SWIG-Ruby. > > What's New > > * Full 1.9 support through the entire stack! > * MinGW / MSYS build support on Windows. > > rb++: > * Updated to work with the Rice::Director changes > * Fixed a bug where rb++ wasn't using any superclass on classes with > multiple superclasses > * Generated extension handles exceptions cleaner > > * Various other small bug fixes and tweaks > > > rbgccxml: > * Switched parsing from libxml-ruby to nokogiri > * Fixed crash on encountering , but no real handling of the type > yet. > * Fixed a bug with older gcc versions on dealing with anonymous > enumerations > > > Project > > Documentation: http://rbplusplus.rubyforge.org > > rb++: http://github.com/jameskilton/rbplusplus > rbgccxml: http://github.com/jameskilton/rbgccxml > > > Installation > > This single command will grab the whole stack needed for rb++ to work. > > gem install rbplusplus > > The stack includes four libraries: rb++, rbgccxml, gccxml_gem, and rice > > > rb++ > > Rb++ makes it almost trivially easy to create Ruby extensions for C++ > library. > In the simplest of cases, there is no need to ever touch C++, everything > is done > in a very simple and clean Ruby API. > > > > rbgccxml > > RbGCCXML allows one to easily parse out and query C / C++ code. > This library uses GCC-XML to parse out the C / C++ code into XML, and then > nokogiri > to parse and query that XML. > > > > gccxml_gem > > GCC-XML (www.gccxml.org) is an application that takes takes the parse tree > of C / C++ > and constructs a very parsable and queryable XML file with all related > information. > > This gem includes a binary build of GCC-XML for supported platforms, > to make it trivially easy to install. Platforms currently supported are: > > * Linux 32 & 64 bit > * Mac OS X > * Windows via MinGW / MSYS > > > Rice > > The Ruby Interface for C++ Extensions, it provides a C++ API for working > with ruby. More information > available at its project page: > > http://rice.rubyforge.org > > > Notes > > Released under the MIT licence. > > For those familiar with py++ / pygccxml, the similarities are in function > only. > Rb++ / rbgccxml were written from scratch to take advantage of the Ruby > language to it's fullest. > > Bugs, patches, feature requests, et al should be posted to the > corresponding project's Issues page on github. > >