sf2gis@163.com
1、下载boost1.52,http://www.boost.org/。解压文件到d:\boost\boost_1_52_0。
2、下载python2.7.3,http://www.python.org/;(boost1.4支持到python2.5)
3、安装python,我安装在了D:\Python25,环境变量设置PATH D:\Python25;
4、開始->程序->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010)。打开一个控制台
5、在控制台依次输入以下3行:
cd d:\boost\boost_1_49_0
bootstrap.bat
bjam stage –toolset=msvc-9.0 –with-python –stagedir=”D:\boost_1_49_0\bin\vc9” link=static runtime-link=shared runtime-link=static threading=multi debug release
6、项目属性中配置例如以下
链接器里的附加库文件夹增加。python/libs(python的安装文件夹中),boost/vs2010/lib(生成的boost的文件夹中)
c/c++的附加库文件夹增加,boost(boost的下载文件夹),python/include(python的安装文件夹)
1、确认project中项目属性中配置例如以下
链接器里的附加库文件夹增加,python/libs(python的安装文件夹中),boost/vs2010/lib(生成的boost的文件夹中)
c/c++的附加库文件夹增加,boost(boost的下载文件夹),python/include(python的安装文件夹)
2、假设使用的是boost.python的静态库:在属性->预处理器->预处理器定义增加BOOST_PYTHON_STATIC_LIB,否则编译的为动态,会提示找不到python_boost*.lib什么的
c++程序
// python_test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <boost/python.hpp>
using namespace std;
using namespace boost::python;
int _tmain(int argc, _TCHAR* argv[])
{
Py_Initialize(); // 初始化
object main_module = import("__main__");
object main_namespace = main_module.attr("__dict__");
// 运行多个python语句:创建一个hello.txt文本文件
str Lines =
"hello = file('hello.txt', 'w')\n"
"hello.write('Hello world first python!')\n"
"hello.close()";
exec(Lines, main_namespace);
// 运行表达式
exec("result = 5 ** 2", main_namespace);
// 提取并查看变量result的值
int five_squared = extract<int>(main_namespace["result"]);
// 查看变量result的值
cout << "The five_squeared caculated by python is " << five_squared << endl;
//载入sys module.
object sys = import("sys");
// 提取python的版本号信息
std::string version = extract<std::string>(sys.attr("version"));
std::cout << version << std::endl;
//要求simple.py与可运行文件在同样路径下! 运行ok
str filename = "simple.py";
object simple = exec_file(filename, main_namespace, main_namespace);
object foo = main_namespace["foo"];
int val = extract<int>(foo(5));
cout << "Python has caculated foo as " << val << endl;
Py_Finalize();
cout << "My Python SUCCESS"<<endl ;
system("pause");
return 0;
}
在当前文件夹下建立一个simple.py的Python文件,内容例如以下:
def foo(i = 4):
return i**3
(演示样例程序源于网络)
- 本文已收录于以下专栏:
posted on 2018-01-10 12:15 cynchanpin 阅读(435) 评论(0) 编辑 收藏 举报