boost::python开发环境搭建
本来想用mingw编译boost::python模块,网上看了下资料太少,只有使用vs2012
操作环境:win7 x64
python: x86
boost: 1.57
编译boost::python模块
1: 开始->Microsoft Visual Studio 2012->Visual Studio Tools->VS2012开发人员命令提示 ; 因为我python是32位的,所以使用这个命令窗口
2:bootstrap.bat 编译出b2.exe
3: b2.exe --with-python --build-type=complete ; 没搞明白link runtime-runk的区别所以直接这么搞
编译结果如下:

创建vs工程(控制台工程)
配置工程属性。




工程默认使用动态库的 boost_python-vc110-mt-gd-1_55.lib,可以设置编译宏BOOST_PYTHON_STATIC_LIB 使用静态库:libboost_python-vc110-mt-gd-1_55.lib
该工程可以不用设置静态库的名字,估计是头文件里面设置了的
源文件
#include<iostream> #include<boost/python.hpp>
#include<Python.h>
using namespace boost::python;
int main()
{
Py_Initialize(); // 检查初始化是否成功
if ( !Py_IsInitialized() )
{
return -;
} PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')"); object mainModule;
object mainNamespace; try
{
mainModule = import("__main__");
mainNamespace = mainModule.attr("__dict__");
exec("import os", mainNamespace, mainNamespace);
exec("print os.getcwd()", mainNamespace, mainNamespace);
}
catch( ... )
{
if (PyErr_Occurred())
PyErr_Print();
} // 关闭Python
Py_Finalize();
system("pause");
}
最重要的地方来了
#include<boost/python.hpp>
#include<Python.h>
两个头文件的位置一定是这样的。发现在很多c++项目中,头文件的位置不对经常引起各种问题 。该问题输出为;
>------ 已启动生成: 项目: python, 配置: Debug Win32 ------
> main.cpp
>main.obj : error LNK2019: 无法解析的外部符号 __imp___Py_NegativeRefcount,该符号在函数 "public: __thiscall boost::python::api::object_base::~object_base(void)" (??1object_base@api@python@boost@@QAE@XZ) 中被引用
>main.obj : error LNK2019: 无法解析的外部符号 __imp___Py_Dealloc,该符号在函数 "public: __thiscall boost::python::api::object_base::~object_base(void)" (??1object_base@api@python@boost@@QAE@XZ) 中被引用
>main.obj : error LNK2001: 无法解析的外部符号 __imp___Py_RefTotal
>E:\visual studio \Projects\python\Debug\python.exe : fatal error LNK1120: 个无法解析的外部命令
========== 生成: 成功 个,失败 个,最新 个,跳过 个 ==========
还好我手贱 移动了下位置
最后检测了下 Python.h头文件不需要加,但是不知道是不是我这个源文件不需要
boost::python开发环境搭建的更多相关文章
- [转]boost::python开发环境搭建
转自:http://www.cnblogs.com/gaoxing/p/4317051.html 本来想用mingw编译boost::python模块,网上看了下资料太少,只有使用vs2012 操作环 ...
- python开发环境搭建
虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...
- Eclipse中Python开发环境搭建
Eclipse中Python开发环境搭建 目 录 1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...
- python学习之python开发环境搭建
Python简介 Python是一种面向对象.解释型计算机程序设计语言.Python语法简洁而清晰,具有丰富和强大的类库等等众多的特性,这是来自百度百科的介绍,在百度百科还能看到它的更详细的介绍信息, ...
- eclipse python开发环境搭建
eclipse python开发环境搭建[非原创] 1.在www.eclipse.org官网下载Eclipse Classic 4.2.2,Win7 64位下载eclipse-SDK-4.2.2-wi ...
- python开发环境搭建及numpy基本属性-【老鱼学numpy】
目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...
- Linux CentOS Python开发环境搭建教程
CentOS安装Python 1.CentOS已经自带安装了2.x版本,先尝试python命令检查已安装的版本.如果你使用rpm.yum或deb命令安装过,请使用相对命令查询. 2.复制安装文件链 ...
- unbuntu16.04上python开发环境搭建建议
unbuntu16.04上python开发环境搭建建议 2017-12-20 10:39:27 推荐列表: pycharm: 可以自行破解,但是不推荐,另外也不稳定 pydev+eclipse: ...
- Python开发环境搭建指导
本文主要介绍Python开发环境的搭建.主要包括如下几部分内容: (1)Python软件的安装.注意版本的选择和安装过程中选项的勾选. (2)pip工具环境变量.镜像源的配置使用和常用镜像源介绍.pi ...
随机推荐
- 如何去除Linux文件的^M字符
Windows上写好的文件,在Linux或者Unix下打开,每一行都会出多出^M这样的字符,这是因为Windows与*nix的换行符不同所致,我们看看文件格式有什么不同.*注:“^M”,需要使用Ctr ...
- LeetCode Minimum Index Sum of Two Lists
原题链接在这里:https://leetcode.com/problems/minimum-index-sum-of-two-lists/description/ 题目: Suppose Andy a ...
- Unity物体上下反复漂浮效果
using UnityEngine;using System.Collections;// 主界面的开始按钮使用该脚本,控制上下来回浮动public class Floating : MonoBeha ...
- SQL Sever 学习系列之二
SQL Sever 学习系列之二 SQL Server 学习系列之一(薪酬方案+基础) 四.有关时间输出问题 select GETDATE() 日期时间 ----显示为:2013-07 ...
- 【转】 Pro Android学习笔记(七八):服务(3):远程服务:AIDL文件
目录(?)[-] 在AIDL中定义服务接口 根据AIDL文件自动生成接口代码 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.n ...
- VisualGDB系列10:快速调试Linux应用程序
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何快速调试GCC构建的Linu ...
- C语言-数组
数组是具有同一属性的若干个数据组织成一个整体,互相关联 数组是有序数据的集合.数组中的每一个元素都属于同一个数据类型,用一个统一的数组名和下标来唯一地确定数组中的元素 一维数组 一维数组的定义 在定义 ...
- C语言生成程序问题
问题: 我用VS2013写好C语言程序调试运行后就在debug文件夹下生成了EXE文件,可以在本机运行.但是这个EXE文件在别的没装过VS2013的电脑上就不能直接运行,说丢失MSVCR120D.dl ...
- 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN
参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...
- xcode 编译报错“Cannot create __weak reference in file using manual reference counting”解决办法<转>
http://blog.csdn.net/ouq68/article/details/51003876 解决方法: Please set ‘Weak References in Manual Reta ...