ASPN ActiveState Programmer Network
  ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups | Web Services
SEARCH
advanced | search help

Reference
ActivePython 2.5
Python Documentation
Extending and Embedding
1. Extending Python with C or C++
1.1 A Simple Example
1.2 Intermezzo: Errors and Exceptions
1.3 Back to the Example
1.4 The Module's Method Table and Initialization Function
1.5 Compilation and Linkage
1.6 Calling Python Functions from C
1.7 Extracting Parameters in Extension Functions
1.8 Keyword Parameters for Extension Functions
1.9 Building Arbitrary Values
1.10 Reference Counts
1.11 Writing Extensions in C++
1.12 Providing a C API for an Extension Module

MyASPN >> Reference >> ActivePython 2.5 >> Python Documentation >> Extending and Embedding >> 1. Extending Python with C or C++
ActivePython 2.5 documentation


1.5 Compilation and Linkage

There are two more things to do before you can use your new extension: compiling and linking it with the Python system. If you use dynamic loading, the details may depend on the style of dynamic loading your system uses; see the chapters about building extension modules (chapter 3) and additional information that pertains only to building on Windows (chapter 4) for more information about this.

If you can't use dynamic loading, or if you want to make your module a permanent part of the Python interpreter, you will have to change the configuration setup and rebuild the interpreter. Luckily, this is very simple on Unix: just place your file (spammodule.c for example) in the Modules/ directory of an unpacked source distribution, add a line to the file Modules/Setup.local describing your file:

spam spammodule.o

and rebuild the interpreter by running make in the toplevel directory. You can also run make in the Modules/ subdirectory, but then you must first rebuild Makefile there by running `make Makefile'. (This is necessary each time you change the Setup file.)

If your module requires additional libraries to link with, these can be listed on the line in the configuration file as well, for instance:

spam spammodule.o -lX11

See About this document... for information on suggesting changes.

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState 2004 All rights reserved