Używam biblioteki Boost Python do tworzenia rozszerzeń Pythona do mojego kodu C++. Chciałbym, aby móc powołać się od pytona 'powitalną' funkcji z kodu C++ poniżej:Budowanie przykładów python Pythona przy użyciu Visual Studio 2008
#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 kod Python:
import hello_ext
print hello_ext.greet()
udało mi się to zrobić przy użyciu bjam (hello_ext.pyd jest generowany i działa dobrze), ale teraz chciałbym go zbudować za pomocą Visual Studio 2008. A hello.dll zostanie zbudowany (ale nie będzie to plik hello_ext.dll ani jakikolwiek .pyd). Po wywołaniu mojego kodu Pythona pojawia się błąd:
ImportError: Brak modułu o nazwie hello_ext.
Po zmianie nazwy hello.dll do hello.pyd lub hello_ext.pyd, mam inną ImportError: load dll nie powiodło
Jak mogę zbudować poprawny plik .pyd użyciu VS 2008?
Dla zainteresowanych w budowaniu takiego projektu z makefile (i GCC), patrz http://stackoverflow.com/questions/2003506/how-to-build-a-boost-dependent-project-using-regular-makefiles/2055958#2055958 – rafak