JPype编译问题

2024-10-01 15:38:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我和JPype做了一个噩梦。我在Windows上安装了dev-env,因此尝试在那里安装它,但没有成功。然后我试了乌班托也没有运气。我现在有点绝望了。我使用Mingw32,因为我尝试安装VS2008,但它告诉我,我必须安装xpsp2,但我是在Vista。我尝试了VS2010,但没有运气,我得到'错误:找不到vcvarsall.bat公司'错误。不管怎样,我现在上的是Mingw32

最后,我尝试使用Neo4j和Python,因此需要使用JPype。我在网上找到了很多关于MySQL等问题的参考,但它们对JPype没有帮助。在

如果我可以修复unix或windows,我可以开始这样做的帮助将是非常感谢。在

这是版本。。在

Windows:Vista 64 Python:2.6 编译器Mingw32:最新版本 J类型:0.5.4.1 Java信息: java版本“1.6.0\u 13” Java(TM)SE运行时环境(build 1.6.0_13-b03) Java HotSpot(TM)64位服务器VM(内部版本11.3-b02,混合模式)

我运行:

Python设置.py安装--compiler=wingw32

得到以下输出。在

选择Windows配置文件 正在运行安装 正在运行生成 运行内部版本 正在运行build\u ext 正在建立''u jpype'扩展 C: \MinGW\bin\gcc.exe文件-mno cygwin-mdll-O-Wall-DWIN32=1“-IC:\Program Files(x86)\Java\jdk1.6.0_21/include”“-IC:\Program Files(x86)\Java\jdk1.6.0_21/include/win32”-Isrc/native/common/include-Isrc/native/python/include-IC:\Python26\include-IC:\Python26\PC-c src/native/common/jp_数组.cpp-o建造\win32温度-2.6\Release\src\native\common\jp\u array.o/EHsc src/native/common/jp文件_数组.cpp:在成员函数“void JPArray::setRange(int,int,std::vector&;)”中: src/native/common/jp文件_数组.cpp:56:13:警告:有符号和无符号整数表达式之间的比较 src/native/common/jp文件_数组.cpp:68:4:警告:不推荐将字符串常量转换为“char*” src/native/common/jp文件_数组.cpp:在成员函数“void JPArray::setItem(int,HostRef*)”中: src/native/common/jp文件_数组.cpp:80:3:警告:不推荐将字符串常量转换为“char*” gcc:/EHsc:没有这样的文件或目录 错误:命令“gcc”失败,退出状态为1

因此,在unix Ubunto上,问题如下:

Java版本:1.6.0_18 J类型:0.5.4.1 Python:2.6

Java正在开发中,我刚刚安装了build essentials,所以有最新的GCC等

我不会粘贴所有的输出,因为它是巨大的。这么多的错误就好像我错过了Java或类似的安装,但我没有。这是开始:

正在运行安装 正在运行生成 运行内部版本 正在运行build\u ext 正在建立''u jpype'扩展 gcc-pthread-fno strict别名-DNDEBUG-g-fwrapv-O2-Wall-Wstrict原型-fPIC-I/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/include-I/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/include/linux-Isrc/native/common/include-Isrc/native/python2.6-c src/native/common/jp惂javaenv_自动发电机.cpp-o建造/临时linux-i686-2.6/src/native/common/jp_javaenv_autogen.o Cc1Puls:警告:命令行选项“Wstrict原型”对于艾达/C/Objc有效,但对于C++无效 在src/native/common/jp_javaenv包含的文件中_自动发电机cpp:21: src/native/common/include/jpype.h:45:17:错误:jni.h:没有这样的文件或目录 在src/native/common/jp_javaenv包含的文件中_自动发电机cpp:21: SrC/Neal/Noo//Cuffy/JPype .h:77:错误:ISO C++禁止声明“JCHAR”,没有类型 src/native/common/include/jpype.h:77:错误:标记“”之前应为“,”或“…” SrC/Neal/Noo//Cuffy/JPype .h:82:错误:ISO C++禁止声明“JCHAR”,没有类型 src/native/common/include/jpype.h:82:错误:标记“”之前应为“;” SrC/Neal/Noo//Cuffy/JPype .h:86:错误:ISO C++禁止声明“JCHAR”,没有类型 src/native/common/include/jpype.h:86:错误:标记“&;”之前应为“;” src/native/common/include/jpype.h:88:error: “private”前应为“;” SrC/Neal/Noo//Cuffy/JPype .h:89:错误:ISO C++禁止声明“JCHAR”,没有类型 src/native/common/include/jpype.h:89:错误:标记“*”之前应为“;” 在src/native/common/include/jpype.h:96中包含的文件中, 从src/native/common/jp_javaenv_自动发电机cpp:21公司名称:

这就是结局:

src/native/common/include/jp\u monitor.h:27:错误:“jobject”没有命名类型 src/native/common/jp_javaenv文件_自动发电机cpp:30:错误:“jbyte”未命名类型 src/native/common/jp_javaenv文件_自动发电机cpp:38:错误:“jbyte”未命名类型 src/native/common/jp_javaenv文件_自动发电机cpp:45:错误:变量或字段“SetStaticByteField”声明为void src/native/common/jp_javaenv文件_自动发电机cpp:45:错误:未在此范围中声明“jclass” src/native/common/jp_javaenv文件_自动发电机cpp:45:错误:未在此作用域中声明“jfieldID” src/native/common/jp_javaenv文件_自动发电机cpp:45:错误:未在此作用域中声明“jbyte” 错误:命令“gcc”失败,退出状态为1


Tags: 文件src声明类型include错误jpypejava
3条回答
gcc: /EHsc: No such file or directory error: command 'gcc' failed with exit status 1

EHsc是特定于Microsoft工具链的编译器开关。这就是为什么你会得到这个错误。你在某处混合了工具链,不知何故-也许是先前尝试的一些剩余文件?我必须自己下载JPype来验证mingw32的构建。在

不过,您知道可以下载python2.6和pytho2.5的JPype二进制发行版吗?在

对于*NIX构建,您缺少Java/JNI开发头,因此C的Java类型不可用,编译器无法识别它们。安装dev包并确保您的工具链能够找到它们。在

我在Linux上也有同样的错误。这对我来说很管用

export JAVA_HOME=/usr/lib/[*your_java_folder*]

看看设置.py第45行:

^{pr2}$

编辑设置.py并删除/EHsc选项。在

相关问题 更多 >

    热门问题