Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Scons下的Swig接口(.i)生成Java类_Java_Swig_Scons - Fatal编程技术网

从Scons下的Swig接口(.i)生成Java类

从Scons下的Swig接口(.i)生成Java类,java,swig,scons,Java,Swig,Scons,当我尝试运行scons 2.3.0以从SWIG接口文件构建类时,scons无法获取所有生成的文件,无论是源路径中的文件,还是包含在构建中的文件(即使设置了类路径)。相反,只尝试编译两个java文件,这两个文件都失败,因为它们是从其他类派生的 loc_env = env.Clone() loc_env['JAVACLASSPATH']= ['build/$TARGET_ARCH/$TARGET_OS/.../java'] swig_j = loc_env.Java(target='.', sour

当我尝试运行scons 2.3.0以从SWIG接口文件构建类时,scons无法获取所有生成的文件,无论是源路径中的文件,还是包含在构建中的文件(即使设置了类路径)。相反,只尝试编译两个java文件,这两个文件都失败,因为它们是从其他类派生的

loc_env = env.Clone()
loc_env['JAVACLASSPATH']= ['build/$TARGET_ARCH/$TARGET_OS/.../java']
swig_j = loc_env.Java(target='.', source=['source_java.i']) #1
#swig_j = loc_env.Jar(target='.', source=['source_java.i']) #2
1和2都无法产生结果。2显示了一条错误消息,表明源代码未被接受,是一个空白字符串,我可以接受,即使示例代码建议它应该可以工作

对于1,根本原因似乎在Scons/Tool/swig.py def_find_modulesrc:,它有一个正则表达式来匹配生成的所有模块,但无法解释任何原始枚举或包装C代码的其他人工制品。当我有一个手动滚动的makefile在类路径中

作为参考,1的javac构建指令为:

javac -classpath build/x86_64/linux/.../java -d build/x86_64/linux/.../java/ -sourcepath build/x86_64/linux/.../java build/x86_64/linux/release/.../source.java build/x86_64/linux/release/.../sourceJNI.java

这是SCONS处理1->N映射的一部分吗?它是否是.i文件的Scons解析中的一个缺陷?或者这是一个更基本的问题?

这是SCON中的一个bug。计划在2.5.0中进行的更改通过改进跨语言扫描解决了这个问题。我期待着明年的某个时候把我的黑客破解出来

对我来说这看起来像个虫子。请在我们的用户邮件列表scons中报告-users@scons.org谢谢你,我会在有时间的时候尝试更新的版本,然后留下错误报告。