Tôi đang sử dụng thư viện Boost Python để tạo các phần mở rộng python cho mã C++ của tôi. Tôi muốn để có thể gọi từ trăn chức năng 'Greet' từ C++ mã hiển thị bên dưới:xây dựng tăng các ví dụ python bằng cách sử dụng 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);
}
Và mã python:
import hello_ext
print hello_ext.greet()
tôi đã quản lý để thực hiện điều này bằng cách sử các bjam (hello_ext.pyd được tạo ra và nó hoạt động tốt đẹp), nhưng bây giờ tôi muốn xây dựng nó bằng cách sử dụng Visual Studio 2008. Một hello.dll được xây dựng (nhưng không hello_ext.dll cũng không phải bất kỳ .pyd). Sau khi gọi mã python của tôi, tôi gặp lỗi:
NhậpError: Không có mô đun nào có tên hello_ext.
Sau khi đổi tên các hello.dll để hello.pyd hoặc hello_ext.pyd, tôi nhận được ImportError khác: tải DLL thất bại
Làm thế nào tôi có thể xây dựng các tập tin .pyd đúng bằng VS 2008?
Đối với những người quan tâm đến việc xây dựng một dự án như vậy với một makefile (và gcc), xem http://stackoverflow.com/questions/2003506/how-to-build-a-boost-dependent-project-using-regular-makefiles/2055958#2055958 – rafak