Ruby-Programmierung: Erweiterung Ruby mit C und C++
Aus Wikibooks
Inhaltsverzeichnis |
Im Aufbau der Autor
Zurück zu Ruby-Programmierung Hauptmenü
[Bearbeiten] Ruby erweitern mit c und c++
Da genug Beispiele für Ruby auf Linux-Systemen zu finden sind, bezieht sich der nachfolgende Artikel auf Erweiterung von Ruby mit Hilfe C und C++ auf Windows Systemen.
Da die Entwicklung der Sprachen stetig erfolgen, ist die Version 6 Visual C++ nicht mehr zum Downloaden zu finden. Aber in Büchereien gibt es Bücher mit Demo Version 6 von C++ zum Erlernen der Sprache.
[Bearbeiten] C Programmierenung unter Windows mit Hilfe von Visual C++ Version 6
SHELL = /bin/sh #### Start of system configuration section. #### srcdir = . topdir = c:/ruby/lib/ruby/1.8/i386-mswin32 hdrdir = $(topdir) VPATH = $(srcdir);$(topdir);$(hdrdir) DESTDIR = c: prefix = $(DESTDIR)/ruby exec_prefix = $(prefix) sitedir = $(prefix)/lib/ruby/site_ruby rubylibdir = $(libdir)/ruby/$(ruby_version) archdir = $(rubylibdir)/$(arch) sbindir = $(exec_prefix)/sbin datadir = $(prefix)/share includedir = $(prefix)/include infodir = $(prefix)/info sysconfdir = $(prefix)/etc mandir = $(prefix)/man libdir = $(exec_prefix)/lib sharedstatedir = $(DESTDIR)/etc oldincludedir = $(DESTDIR)/usr/include sitearchdir = $(sitelibdir)/$(sitearch) localstatedir = $(DESTDIR)/var bindir = $(exec_prefix)/bin sitelibdir = $(sitedir)/$(ruby_version) libexecdir = $(exec_prefix)/libexec CC = cl -nologo LIBRUBY = $(RUBY_SO_NAME).lib LIBRUBY_A = $(RUBY_SO_NAME)-static.lib LIBRUBYARG_SHARED = $(LIBRUBY) LIBRUBYARG_STATIC = $(LIBRUBY_A) RUBY_EXTCONF_H = CFLAGS = -MD -Zi -O2b2xg- -G6 INCFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir) CPPFLAGS = CXXFLAGS = $(CFLAGS) DLDFLAGS = -link -incremental:no -debug -opt:ref -opt:icf -dll $(LIBPATH) -def:$(DEFFILE) -implib:$(*F:.so=)-$(arch).lib -pdb:$(*F:.so=)-$(arch).pdb LDSHARED = cl -nologo -LD AR = lib -nologo EXEEXT = .exe RUBY_INSTALL_NAME = ruby RUBY_SO_NAME = msvcrt-ruby18 arch = i386-mswin32 sitearch = i386-msvcrt ruby_version = 1.8 ruby = c:/ruby/bin/ruby RUBY = $(ruby:/=\) RM = $(RUBY) -run -e rm -- -f MAKEDIRS = @$(RUBY) -run -e mkdir -- -p INSTALL = @$(RUBY) -run -e install -- -vp INSTALL_PROG = $(INSTALL) -m 0755 INSTALL_DATA = $(INSTALL) -m 0644 COPY = copy > nul #### End of system configuration section. #### preload = libpath = $(libdir) LIBPATH = -libpath:"$(libdir)" DEFFILE = CLEANFILES = DISTCLEANFILES = vc*.pdb extout = extout_prefix = target_prefix = LOCAL_LIBS = LIBS = $(LIBRUBYARG_SHARED) oldnames.lib user32.lib advapi32.lib ws2_32.lib SRCS = OBJS = TARGET = DLLIB = EXTSTATIC = STATIC_LIB = RUBYCOMMONDIR = $(sitedir)$(target_prefix) RUBYLIBDIR = $(sitelibdir)$(target_prefix) RUBYARCHDIR = $(sitearchdir)$(target_prefix) TARGET_SO = $(DLLIB) CLEANLIBS = $(TARGET).so $(TARGET).il? $(TARGET).tds $(TARGET).map CLEANOBJS = *.obj *.lib *.s[ol] *.pdb *.exp *.bak all: Makefile static: $(STATIC_LIB) clean: @-$(RM) $(CLEANLIBS:/=\) $(CLEANOBJS:/=\) $(CLEANFILES:/=\) distclean: clean @-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log @-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES:/=\) realclean: distclean install: install-so install-rb install-so: $(RUBYARCHDIR) install-rb: pre-install-rb install-rb-default install-rb-default: pre-install-rb-default pre-install-rb: Makefile pre-install-rb-default: Makefile site-install: site-install-so site-install-rb site-install-so: install-so site-install-rb: install-rb
| C Datentypen für RubyObjekte: | |
|---|---|
| INT2NUM(int) | Fixnum or Bignum |
| INT2FIX(int) ) | Fixnum (faster) |
| LONG2NUM(long) | Fixnum or Bignum |
| LONG2FIX(int) | Fixnum (faster) |
| LL2NUM(longlong) ) | Fixnum or Bignum (if native systemsupports longlong type) |
| ULL2NUM(longlong) | Fixnum or Bignum (if native systemsupports longlong type) |
| CHR2FIX(char) | Fixnum |
| rb_str_new2(char *) | String |
| rb_float_new(double) | Float |
