【问题标题】:hello world python extension in c++ using boost?使用boost在c ++中使用hello world python扩展?
【发布时间】:2011-08-25 19:37:31
【问题描述】:

这是我第一次尝试使用 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:没有此类文件或目录编译终止。

【问题讨论】:

    标签: c++ linux compiler-errors boost-python


    【解决方案1】:

    /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

    【讨论】:

      【解决方案2】:

      如果您在 NetBeans 中遇到此问题,则只需在 NetBeans 附加包含选项中添加“/usr/include/python 2.7/”文件夹。您将在属性中获得这个额外的包含选项。

      【讨论】:

        【解决方案3】:

        你需要把pyconfig.h放在同一个目录

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多