c++ 中的 hello world python 扩展使用升压?

发布于 2024-11-07 07:30:56 字数 688 浏览 4 评论 0原文

这是我使用 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:没有这样的文件或目录编译终止。

Here's my simple first attempt at a python extension using boost. Can someone help me to understand what's causing the compilation error?


#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

In file included from /usr/include/boost/python/detail/prefix.hpp:13:0, from /usr/include/boost/python/module.hpp:8, from main.cpp:8:
/usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or directory compilation terminated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

终陌 2024-11-14 07:30:56

/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

/usr/include/boost/python/detail/wrap_python.hpp:50:23:
fatal error: pyconfig.h: No such file
or directory compilation terminated.

This line tells exactly why it doesn't work. Your compiler doesn't know where is the pyconfig.h file. You have two options here:

  1. place pyconfig.h in a location that
    g++ knows about (i.e. your
    project's directory)
  2. add -I DIRECTORY (this is capital i,
    not lowercase L) flag to g++ that
    will make g++ search DIRECTORY for header files

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

鯉魚旗 2024-11-14 07:30:56

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

If you face this problem in your NetBeans then just add "/usr/include/python 2.7/" folder in your NetBeans additional include option. You will get this additional include option in properties.

亚希 2024-11-14 07:30:56

您需要将 pyconfig.h 放在同一目录中

You need to place pyconfig.h in same directory

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文