【发布时间】:2017-01-17 21:01:02
【问题描述】:
使用在线教程:http://www.swig.org/papers/PyTutorial98/PyTutorial98.pdf
我正在尝试重新使用可用的示例,但我遇到了以下错误:
swig:无法执行二进制文件
example.c
/* example.c */
double Foo = 7.5;
int fact(int n) {
if (n <= 1) return 1;
else return n*fact(n-1);
}
例子.i
// example.i
%module example
%{
#include "headers.h"
%}
int fact(int n);
double Foo;
#define SPAM 42
错误:
$swig -python example.i
swig: cannot execute binary file
有什么建议吗?我怎样才能克服这个错误以生成 example_wrap.c 文件?
chmod +x example.i
$file example.i
example.i: ASCII C++ program text
【问题讨论】:
-
我认为错误是关于 swig 而不是 example.i。你试过
which swig然后ls -al(检查exec权限)和file输出吗?尝试运行swig --help,或按完整路径运行。 -
我确实有 exec 权限。文件 swig 返回:swig:ELF 32 位 MSB 可执行文件,SPARC,版本 1 (SYSV),动态链接(使用共享库),未剥离。 $swig --help -bash: /auto/ses/bin/swig: 无法执行二进制文件
-
输出表明您的
swig二进制文件是为 32 位 SPARC 系统构建的。如果您不是在 32 位 SPARC 上运行,则需要更合适的 swig 二进制文件。 -
注意:它也应该适用于 64 位 SPARC。但我怀疑您是在 Solaris SPARC 上运行的。您可能在 Intel(x86 或 x64)架构上运行(不知道 Ux / Linux 风味),这就是您应该拥有/运行的 swig。顺便说一句:你是如何安装 swig 的?您使用的是什么操作系统 (
uname -a)?
标签: python c executable swig binaryfiles