使用boost_python导入错误

使用boost_python导入错误,python,boost,cygwin,boost-python,Python,Boost,Cygwin,Boost Python,当我尝试加载boost::python构建的模块时,我在Cygwin上遇到以下错误: >>> import Whatever Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: Permission denied 所有涉及的.dll都具有读取和执行权限 我只使用cygwin安装的软件,不使用二进制或源代码包。GCC版本为6.3.0,B

当我尝试加载boost::python构建的模块时,我在Cygwin上遇到以下错误:

>>> import Whatever
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: Permission denied
所有涉及的.dll都具有读取和执行权限

我只使用cygwin安装的软件,不使用二进制或源代码包。GCC版本为6.3.0,Boost版本为1.60

Linux上使用的配置与Cygwin上使用的配置完全相同

当我通过
strace
(在Cygwin上)运行Python时,我得到以下结果:

<tons of output>
--- Process 35608 loaded C:\cygwin64\bin\cygboost_python-1_60.dll at 00000003f7ec0000
--- Process 35608 loaded C:\cygwin64\bin\cyggcc_s-seh-1.dll at 00000005e1570000
--- Process 35608 loaded C:\cygwin64\bin\cygstdc6.dll at 00000005d4da0000
--- Process 35608, exception c0000005 at 00000003f7ee8527
--- Process 35608 thread 48604 exited with status 0xc0000005
--- Process 35608 thread 13756 exited with status 0xc0000005
--- Process 35608 thread 45304 exited with status 0xc0000005
--- Process 35608 exited with status 0xc0000005
Segmentation fault
Thread 1 "python2.7" received signal SIGSEGV, Segmentation fault.
0x00000003f7ee8527 in cygboost_python-1_60!_ZTv0_n40_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_17bad_function_callEEEED1Ev ()
   from /usr/bin/cygboost_python-1_60.dll
(gdb)
如何开始对其进行故障排除


使用调试信息从源代码构建Python和/或Boost将是我最后的选择。

这似乎是GCC 6.3.0错误的结果

最小复制:

#include <typeinfo>

int main()
{
    typeid(int).name();
}
#包括
int main()
{
typeid(int.name();
}

此程序在cygwin下的gcc 6.3.0下(无论如何在我的机器上)发生故障。

尝试打开依赖项Walker()上的dll,并检查是否缺少资源。@HugoCorrádepwalker在所有递归依赖的dll中都没有显示缺少的资源。
Thread 1 "python2.7" received signal SIGSEGV, Segmentation fault.
0x00000003f7ee8527 in cygboost_python-1_60!_ZTv0_n40_N5boost16exception_detail10clone_implINS0_19error_info_injectorINS_17bad_function_callEEEED1Ev ()
   from /usr/bin/cygboost_python-1_60.dll
(gdb)
#include <typeinfo>

int main()
{
    typeid(int).name();
}