这是我使用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:没有这样的文件或目录编译终止。
/usr/include/boost/python/detail/wrap_python.hpp:50:23:致命错误:pyconfig.h:没有这样的文件或目录编译终止。
这一行告诉它为什么不起作用。 你的编译器不知道pyconfig.h文件在哪里。 你有两个选择:
g ++ -I / path / to / my / include / files main.cpp
如果您在NetBeans中遇到这个问题,那么只需在您的NetBeans附加包含选项中添加“/ usr / include / python 2.7 /”文件夹即可。 您将在属性中获得这个额外的包含选项。
你需要把pyconfig.h放在同一个目录下