user2698178
user2698178

Reputation: 366

Unable to Build Boost.python in Visual Studio 2008. Compilation gives error

I am in a HUGE depression now! I spend 2 days trying to use boost.python . PLEASE guide me! I will explain what I did.

I have Winows 7 64 bit. The Python is 64 bit 2.7.3 installed at C:\Python27_amd64.
Now, I take boost_1_54_0.zip and unzip in F: directory. The I use cmd.

bootstrap

this creates project-config.jam. I edit it and insert

using msvc : 9.0 ; using python : 2.7 : C:\Python27_amd64\python : C:\Python27_amd64\include : C:\Python27_amd64\libs ;

Now i do

.\b2

This process runs for 20 something minutes and I am told that boost has successfully been build.

After that I install boost binaries from http://sourceforge.net/projects/boost/files/boost-binaries/ The binaries get installed in C:\local\boost_1_54_0.

Now I want to create a General project.

Now, I use the code given for embedding python in C++ here

#include <boost/python.hpp>
#include <boost/detail/lightweight_test.hpp>
#include <iostream>
namespace py = boost::python;  
using namespace std; 

int main()
{

  // Initialize the interpreter
  Py_Initialize();
  py::object main_module = py::import("__main__");  
  py::object main_namespace = main_module.attr("__dict__");
  py::exec("print 'Hello, world'", main_namespace);
  py::exec("print 'Hello, world'[3:5]", main_namespace);
  py::exec("print '.'.join(['1','2','3'])", main_namespace);

}

I setup the header files and library in VC++ directories to F:\boost_1_54_0\boost_1_54_0 and F:\boost_1_54_0\boost_1_54_0\stage\lib respectively.

I also setup project-->properties-->configuration properties-->C/C++-->General-->Additional Include directories to C:\Python27_amd64\include

Likewise, I also setup project-->properties-->configuration properties--> Linker--> General to C:\Python27_amd64\libs;"C:\local\boost_1_54_0\lib64-msvc-9.0" .

Now when I compile using x64 debugger. It gives me an error

Unhandled exception at 0x00000000 in test8.exe: 0xC0000005: Access violation at location 0x0000000000000000.

I am struck since last 2 days...but thats the closest I have been since then. please help me!

Upvotes: 0

Views: 150

Answers (1)

Ajolas
Ajolas

Reputation: 11

So you mean a runtime error, right? I think you should first ensure, that there is no exception thrown by boost::python itself. First try to set the try block around you python calls with a catch(...) If exception is caught it is most probably the boost::python::error_already_set exception. So, you then should decode it like here

Upvotes: 1

Related Questions