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 <iostream>

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 <Union>, 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.
>
>