Writing C Modules with Inline::C
Getting Up Close and Personal
Inline::C supports a powerful tracing mechanism that can give you information
about what it's doing while it's doing it. For example, if I call the preceding script
with the command line parameter MInline=INFO,FORCE,NOCLEAN, the following
output is produced:
$ perl MInline=INFO,FORCE,NOCLEAN ./inline.pl
< Information Section >
Information about the processing of your Inline C code:
Your source code needs to be compiled. I ll use this build directory:
./_Inline/build/inline_pl_927a
and I ll install the executable as:
./_Inline/lib/auto/inline_pl_927a/inline_pl_927a.so
The following Inline C function(s) have been successfully bound to Perl:
void japh()
< End of Information Section >
Just Another Perl Hacker.
The FORCE option tells Inline::C to compile the code even if it hasn't changed. The
INFO option produces the output included earlier. As you can see, Inline::C is building
in ./_Inline/build/inline_pl_927a. The compiled module (referred to as an
executable) is created in this directory. Finally, Inline::C helpfully reports that a
single function was successfully bound to Perl: void japh().
By specifying NOCLEAN, Inline::C leaves all its temporary files around for you to
inspect. Entering the build directory, I find the following files:
$ cd _Inline/build/inline_pl_927a
$ ls
blib inline_pl_927a.c Makefile out.Makefile_PL
INLINE.h inline_pl_927a.o Makefile.PL out.make_install
inline_pl_927a.bs inline_pl_927a.xs out.make pm_to_blib
All of these files are useful to understanding how Inline::C works, but the file
out.make is of particular importance. It records the output of the compilation
phase of your code. If you have a compilation error, Inline::C will output a message
like this one:
23
239
9
footer
Our partners:
PHP: Hypertext Preprocessor Best Web Hosting
Java Web Hosting
Inexpensive Web Hosting
Jsp Web Hosting
Cheapest Web Hosting
Jsp Hosting
Cheap Hosting
Visionwebhosting.net Business web hosting division of Web
Design Plus. All rights reserved