D
Daniel Berger
Hi,
I'm having some trouble pre-declaring some VALUE's. I've got a VALUE
cFoo I want to be visible to multiple source files. Say the layout is
something like this:
foo/ext/stuff/extconf.rb
foo/ext/stuff/foo.c
foo/ext/stuff/bar.c
foo/ext/stuff/baz.h
foo/ext/stuff/stuff.c
I want to define all the class VALUE's in the header file. I would
then like to be able to '#include "baz.h"' inside both foo.c and
bar.c. However, that causes an ld error when I try to build the source
files:
ld: duplicate symbol _cFoo in foo.o and bar.o
# extconf.rb
require 'mkmf'
create_makefile('stuff')
# Rakefile
require 'rake'
require 'rake/extensiontask'
Rake::ExtensionTask.new('stuff')
// baz.h
#ifndef BAZ_H_INCLUDED
#define BAZ_H_INCLUDED
#include <ruby.h>
VALUE cFoo;
VALUE cBar;
#endif
Why do I want to do this? In the long run, I'm trying to figure out
how to setup Check_Type calls for my own classes, e.g.
Check_Type(some_value, cFoo);
Regards,
Dan
I'm having some trouble pre-declaring some VALUE's. I've got a VALUE
cFoo I want to be visible to multiple source files. Say the layout is
something like this:
foo/ext/stuff/extconf.rb
foo/ext/stuff/foo.c
foo/ext/stuff/bar.c
foo/ext/stuff/baz.h
foo/ext/stuff/stuff.c
I want to define all the class VALUE's in the header file. I would
then like to be able to '#include "baz.h"' inside both foo.c and
bar.c. However, that causes an ld error when I try to build the source
files:
ld: duplicate symbol _cFoo in foo.o and bar.o
# extconf.rb
require 'mkmf'
create_makefile('stuff')
# Rakefile
require 'rake'
require 'rake/extensiontask'
Rake::ExtensionTask.new('stuff')
// baz.h
#ifndef BAZ_H_INCLUDED
#define BAZ_H_INCLUDED
#include <ruby.h>
VALUE cFoo;
VALUE cBar;
#endif
Why do I want to do this? In the long run, I'm trying to figure out
how to setup Check_Type calls for my own classes, e.g.
Check_Type(some_value, cFoo);
Regards,
Dan