Thread "Hallo Welt" in XS (18 answers)
Opened by hlubenow at 2020-01-08 18:32

hlubenow
 2020-01-11 11:45
#191099 #191099
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Offenbar kann man dasselbe wie XS auch mit SWIG erreichen.
Dieses Beispiel funktioniert bei mir:

https://www.thegeekstuff.com/2012/03/swig-perl-exa...

Es scheint einfacher und klarer zu sein als mit XS.
Gut dokumentiert ist es auch:

http://www.swig.org/Doc1.3/Perl5.html

Und man kann dieselben Grundsätze auch für andere Sprachen (Python) verwenden.
Klingt ganz interessant.

------------------

Edit: Hier mal ein "Hello World" mit SWIG:

hello.c
Code (C): (dl )
1
2
3
4
5
#include <stdio.h>

void printHello() {
    printf("Hello World!\n");
}


hello.i
Code: (dl )
1
2
3
4
%module hello
%{
%}
extern void printHello();


compile_hello
Code (shell): (dl )
1
2
3
4
5
6
7
8
9
10
#!/bin/bash

PERLCOREPATH="/usr/lib/perl5/5.18.1/i586-linux-thread-multi/CORE"
MODULENAME="hello"

swig -perl5 "$MODULENAME".i

gcc -fpic -c -Dbool=char -I"$PERLCOREPATH" "$MODULENAME"_wrap.c "$MODULENAME".c -D_GNU_SOURCE

gcc -shared "$MODULENAME".o "$MODULENAME"_wrap.o -o "$MODULENAME".so


hello.pl
Code (perl): (dl )
1
2
3
4
5
6
7
#!/usr/bin/perl
use strict;
use warnings;

use hello;

hello::printHello();


- "hello.c" und "hello.i" erstellen.
- In "compile_hello" den Pfad zum "CORE"-Verzeichnis der Perl-Distribution anpassen.
- "./compile_hello" ausführen.
- "hello.pl" erstellen und ausführen.

Nicht schlecht. So stelle ich mir das schon eher vor.
Last edited: 2020-01-11 17:49:45 +0100 (CET)

View full thread "Hallo Welt" in XS