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