这是我使用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);
}
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:没有这样的文件或目录编译终止。
答案 0 :(得分:13)
/usr/include/boost/python/detail/wrap_python.hpp:50:23: 致命错误:pyconfig.h:没有这样的文件 或目录编译终止。
这一行确切地说明了为什么它不起作用。您的编译器不知道pyconfig.h文件在哪里。你有两个选择:
g ++ -I / path / to / my / include / files main.cpp
答案 1 :(得分:0)
如果您在NetBeans中遇到此问题,则只需在NetBeans附加包含选项中添加“/ usr / include / python 2.7 /”文件夹。您将在属性中获得此附加包含选项。
答案 2 :(得分:-3)
您需要将pyconfig.h放在同一目录
中