编译和运行后提升python给了我段错误

时间:2017-10-03 20:32:50

标签: python c++ boost boost-python

我的示例代码:

#include <iostream>
#include <boost/array.hpp>
#include <boost/python.hpp>
using namespace std;
int main(){
  boost::array<int, 4> arr = {{1,2,3,4}};
  cout << "hi" << arr[0];
  return 0;
}

使用编译:

g++ a.cpp -o a -I /usr/include/python2.7/ -lboost_python -lboost_system -shared -fPIC

运行./a它给了我:

Segmentation fault (core dumped)

我认为这与boost python库有关,如果我删除

#include <boost/python.hpp> 

并使用

进行编译
g++ a.cpp -o a
然后./a,一切运作良好。我该如何解决?

2 个答案:

答案 0 :(得分:0)

删除可执行文件上的-shared标志:

http://coliru.stacked-crooked.com/a/5479166d518fb207

答案 1 :(得分:0)

g++ a.cpp -o a -I /usr/include/python2.7/ -lboost_python -lpython2.7 -lboost_system -fPIC

我添加了-lpython2.7,现在正在使用