Swig:要么丢失 /bits/c++config.h 要么找不到包含
Posted
技术标签:
【中文标题】Swig:要么丢失 /bits/c++config.h 要么找不到包含【英文标题】:Swig: either missing /bits/c++config.h or includes cannot be found 【发布时间】:2018-01-31 18:49:23 【问题描述】:我在 swig 方面遇到了很大的麻烦。 我想用 C++ 编写一个库来包含它并将其用作 python 扩展。 问题是,当我使用以下命令时,swig 抱怨其他包含,它找不到:
swig -python -Isrc myModule.i
输出如下:
Error: unable to find 'forward_list'
还有一些在我的接口文件中指定的:
/* file: myModule.i */
%module myModule
%
#include <forward_list>
#include <string>
#include <set>
#include "myModule.h"
%
%include "myModule.h"
%include <forward_list>
%include <string>
%include <set>
我按照说明合并了其他目录并使用了以下命令:
swig -python -I/usr/include/c++/5 -Isrc myModule.h
然后 swig 抱怨在
中丢失了文件/usr/include/c++/5/bits
例如 c++config.h。我同时安装了 c++-multilib 和 g++-multilib。 但是,这些包已安装到另一个目录:
/usr/include/x86_64-linux-gnu/c++/5/bits
所以我现在可以决定,是否要通过指定 -I 来查找必要的文件,或者能够找到位于其他文件夹中的包含文件。 我能做什么,或者更确切地说,我做错了什么?
【问题讨论】:
相关:***.com/questions/31816095/…<forward_list>
是在 C++11 中添加的,请检查您的编译器和编译器标志。见:en.cppreference.com/w/cpp/header
链接的问题在这里无关紧要。提问者不直接包括部分位。我怀疑这是因为没有启用 C++11。
【参考方案1】:
似乎我只是忘记在命令中添加-c++
选项。这显然让 swig 知道,它是 c++ 代码。关于bits/<xy>.h
的错误信息就消失了。
【讨论】:
以上是关于Swig:要么丢失 /bits/c++config.h 要么找不到包含的主要内容,如果未能解决你的问题,请参考以下文章
icpc 无法打开源文件“bits/c++config.h”错误
g++ 4.6 没有 <bits/c++config.h> 头文件 cstring 要求的文件
在 Ubuntu 中在 32 位上交叉编译 64 位程序时缺少包含“bits/c++config.h”