[C++-sig] Building "hello world" with Boost.Python

k k ralvek at yahoo.it
Tue Sep 30 14:20:25 CEST 2008


Correction: the 2 output files are hello.o and hello_ext.lib


----- Messaggio originale -----
Da: k k <ralvek at yahoo.it>
A: c++-sig at python.org
Inviato: Martedì 30 settembre 2008, 14:17:56
Oggetto: Building "hello world" with Boost.Python


Hi all,
i want to use a C++ dll (containing overloaded functions) with Python.
I'm trying to use Boost.Python.
I dowloaded it and now I'm doing the hello world tutorial situated in the boost installation folder in \libs\python\example\tutorial
I got also bjam and configured it to work with gcc and python 2.5.
This is the hello.cpp file to export:

#include <boost/python/module.hpp>
#include <boost/python/def.hpp>

char const* greet()
{
   return "hello, world";
}

BOOST_PYTHON_MODULE(hello_ext)
{
    using namespace boost::python;
    def("greet", greet);
}

I use this Jamroot file (that is in the same folder as hello.cpp):

# Copyright David Abrahams 2006. Distributed under the Boost
# Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

# Specify the path to the Boost project.  If you move this project
# adjust this path to refer to the Boost root directory.

use-project boost
    : ../../../.. ;

# Set up the project-wide requirements that everything uses the
# boost_python library from the project whose global ID is
# /boost/python.

project
 : requirements <library>/boost/python//boost_python ;

# Declare the three extension modules.  You can specify multiple
# source files after the colon separated by spaces.

python-extension hello_ext : hello.cpp ;

# A little "rule" (function) to clean up the syntax of declaring tests
# of these extension modules.

local rule run-test ( test-name : sources + )
    {
        import testing ;
        testing.make-test run-pyd : $(sources) : : $(test-name) ;
    }

# Declare test targets

run-test hello : hello_ext hello.py ;

In the Jamroot file i changed only this:

use-project boost
  : ../../../.. ;with this(the boost root folder on on my disk):


use-project boost
  : C:/boost/boost_1_35_0 ;When i run bjam it seams that it builds well, only with some warning, but without any error.
In the tutorial they say that if all is well i should now have built the DLLs.
But the only things in there are 2 files: hello.o and hello.lib
I can't use these as python modules, how can i get the DLL? and the .pyd?

Thanks in advance.
Stefano




__________________________________________________
Do You Yahoo!?
Poco spazio e tanto spam? Yahoo! Mail ti protegge dallo spam e ti da tanto spazio gratuito per i tuoi file e i messaggi 
http://mail.yahoo.it 


      Scopri il blog di Yahoo! Mail:
Trucchi, novità e la tua opinione.
http://www.ymailblogit.com/blog
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/cplusplus-sig/attachments/20080930/34933da7/attachment.htm>


More information about the Cplusplus-sig mailing list