赞
踩
1.建议使用新版的比较方便,也没有太多的bug。
2.我使用的Boost 库是1.82.0 点击下载 Boost 1.82.0 。
3.使用的是python 3.10.11版本 点击下载 python 3.10.11 。
4. boost 1.82.0 版本不能用高于310的python 去编译,如果用的其他版本需要自己去查相对于的版本。
5.我之前使用过Boost.1.69.0版本这个版本不能用高于3.9 的版本,因为3.9+ 里面放弃了某个函数,可以使用3.8.0的版本,但是安装的时候需要选择自定义安装,最后一步勾选上二进制调试,不然你vs 选用Debug编译的时候会出现少一个 xxxx_d.ib 的库文件。
1.使用VS2022 的 Developer command prompt (开发者命令提示符)工具 cd 到你下载的
Boost 目录下,然后运行 bootstrap.bat 文件会自动生成b2.exe 文件,新版的没有bjam.exe文件了,boost.python 被集成在b2 里面去了。
2.运行 b2.exe编译生成boost 库
.\b2 install --toolset=msvc-14.3 --with-python --prefix="D:\Visual Stadio_2022\Boost" link=static runtime-link=shared threading=multi address-model=64
--toolset=msvc-14.3 这个vs 编译版本 2022 是14.3,2019是14.2 ,2017是14.1 。
--with-python 编译python 相关的模块 。
--prefix=" " 这个生成的Boost.python 库存放的文件位置。
runtime-link=shared 是指打包生成为动态库。
threading=multi 多线程编译。
address-model=64 x64 。
编译好了如下,不会出现什么错误就ok 了
1.配置C/C++ 中的包含路径,要包含boost 的库目录和python 的库目录。注意包含的级数,boost 需要包含到boost-1_82
2.配置链接器 的附加库目录,此处python 只需要包含libs 也就是动态库的路径。python 的安装路径一般在这个地方。
3.修改为动态生成文件
4.修改目标扩展名
- #define BOOST_PYTHON_STATIC_LIB
-
- #include <boost/python.hpp>
- #include <iostream>
-
- // Function to print "hello world BOOST PYTHON"
- void hello()
- {
- std::cout<<"hello world BOOST PYTHON"<<std::endl;
- }
-
- // Boost Python module initialization
- BOOST_PYTHON_MODULE(Boost_Python_TEST)
- {
- // Expose the "hello" function to Python
- boost::python::def("hello", hello);
- }
1.打开生成的.pyd文件 (注意:如何项目名称跟宏BOOST_PYTHON_MODULE()中的名称不一致一定要修改为相同名字,不然你会一直显示import 不成功, 我在这地方被坑了2天!!!!)
2. 现在到了检验是否正确的时候了,直接在本路径下cmd->然后输入 python-> import Boost_Python_TEST -> Boost_Python_TEST.hello() 查看输入正确就搞定了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。