在我的src目录中,我有一个接口文件[[ 5 20 31 32 36 3 10 25 27 40],
[ 3 10 25 27 40 18 19 20 40 41],
[18 19 20 40 41 6 22 26 29 48],
[ 6 22 26 29 48 8 11 23 27 35]]
,swig使用该文件通过以下规则创建#initialize the target matrix
arr = np.empty((0, 10), int)
for current_line in statistics.values:
if len(previous_line) > 0:
#build an array row of 10 elements by 2 array with lenght 5
row = np.append(np.array(previous_line), np.array(current_line))
#arr = np.append(arr, row, axis=0)
#fails with following Exception ValueError: all the input arrays must have same number of dimensions
print(row)
previous_line = current_line
:
neoleo.i
当我输入neoleo_wrap.c
时,它输出:
neoleo_wrap.c : $(srcdir)/neoleo.i neoleo_swig.c neoleo_swig.h
swig -tcl8 $(srcdir)/neoleo.i
我需要做些什么来解决这个问题?
make dist ; make distcheck
的一些相关部分:
swig -tcl8 ../../../src/neoleo.i
Unable to open file ../../../src/neoleo_wrap.c: Permission denied
make[2]: *** [Makefile:1313: neoleo_wrap.c] Error 1
此处提供完整Makefile.am
:
答案 0 :(得分:3)
automake distcheck
根据其标准验证您的构建系统是否正常运行,其中一部分是源目录未以任何方式修改。 distcheck使用权限来确保这一点。在您的情况下,swig
正在尝试将其输出文件写入不正确的源目录(根据automake):不得修改该目录。
即使您不关心这一点,您的makefile也是错误的,因为它表示您的规则将构建neoleo_wrap.c
,但您的swig
命令行实际上会创建../../src/neoleo_wrap.c
; make不会原谅这种背叛。
因此,您需要将swig
命令更改为:
neoleo_wrap.c : $(srcdir)/neoleo.i neoleo_swig.c neoleo_swig.h
swig -tcl8 -o $@ $<