在使用boost的c ++中你好世界python扩展?

bit*_*cle 6 c++ linux compiler-errors boost-python

这是我使用boost进行python扩展的第一次尝试.有人可以帮助我理解导致编译错误的原因吗?


#include <iostream>
using namespace std; 
void say_hello(const char* name) {
    cout << "Hello " <<  name << "!\n";
}

#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
using namespace boost::python;

BOOST_PYTHON_MODULE(hello)
{
    def("say_hello", say_hello);
}
Run Code Online (Sandbox Code Playgroud)

user @ host:〜$ g ++ main.cpp -o test.so

在/usr/include/boost/python/detail/prefix.hpp:13:0中的文件中,来自/usr/include/boost/python/module.hpp:8,来自main.cpp:8:/ usr/include /boost/python/detail/wrap_python.hpp:50:23:致命错误:pyconfig.h:没有终止此类文件或目录编译.

Łuk*_*ski 13

/usr/include/boost/python/detail/wrap_python.hpp:50:23:致命错误:pyconfig.h:没有终止此类文件或目录编译.

这一行告诉它为什么不起作用.您的编译器不知道pyconfig.h文件在哪里.你有两个选择:

  1. 将pyconfig.h放在g ++知道的位置(即项目的目录)
  2. 添加-I DIRECTORY(这是大写i,而不是小写L)g ++的标志,它将使g ++搜索DIRECTORY用于头文件

g ++ -I/path/to/my/include/files main.cpp