Qt Jambi构建失败(VS2010)

时间:2013-02-12 18:04:02

标签: java qt qt-jambi jambi

我已经在Windows 7上成功构建了Qt 4.8.4,现在我正在尝试针对该版本构建Qt Jambi。当我在Qt Jambi源目录中运行ant来启动构建时,我只得到部分路径,然后我最终得到以下内容

cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_QTJAMBI_IMPORT -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\qt-everywhere-opensource-src-4.8.4\include\QtCore" -I"..\..\qt-everywhere-opensource-src-4.8.4\include" -I"..\qtjambi" -I"..\common" -I"C:\Program Files\Java\jdk1.7.0_09\include" -I"C:\Program Files\Java\jdk1.7.0_09\include\win32" -I"." -I"..\..\qt-everywhere-opensource-src-4.8.4\include\ActiveQt" -I"release" -I"..\..\qt-everywhere-opensource-src-4.8.4\mkspecs\default" -Forelease\ @C:\Users\TYLERS~1\AppData\Local\Temp\nmFBCC.tmp qtjambishell_QLocale.cpp

..\cpp\com_trolltech_qt_core\qtjambishell_QLocale.cpp(885) : error C2084: function 'jobject Java_com_trolltech_qt_core_QLocale__1_1qt_1toCurrencyString_1int_1String__JILjava_lang_String_2(JNIEnv *,jobject,jlong,jint,jobject)' already has a body

..\cpp\com_trolltech_qt_core\qtjambishell_QLocale.cpp(808) : see previous definition of 'Java_com_trolltech_qt_core_QLocale__1_1qt_1toCurrencyString_1int_1String__JILjava_lang_String_2'

..\cpp\com_trolltech_qt_core\qtjambishell_QLocale.cpp(909) : error C2084: function 'jobject Java_com_trolltech_qt_core_QLocale__1_1qt_1toCurrencyString_1long_1String__JJLjava_lang_String_2(JNIEnv *,jobject,jlong,jlong,jobject)' already hasa body

..\cpp\com_trolltech_qt_core\qtjambishell_QLocale.cpp(832) : see previous definition of 'Java_com_trolltech_qt_core_QLocale__1_1qt_1toCurrencyString_1long_1String__JJLjava_lang_String_2'

..\cpp\com_trolltech_qt_core\qtjambishell_QLocale.cpp(933) : error C2084: function 'jobject Java_com_trolltech_qt_core_QLocale__1_1qt_1toCurrencyString_1char_1String__JCLjava_lang_String_2(JNIEnv *,jobject,jlong,jchar,jobject)' already has a body

..\cpp\com_trolltech_qt_core\qtjambishell_QLocale.cpp(856) : see previous definition of 'Java_com_trolltech_qt_core_QLocale__1_1qt_1toCurrencyString_1char_1String__JCLjava_lang_String_2'

NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

有关此错误编号的一些MSDN条目 - http://msdn.microsoft.com/en-us/library/dt309377.aspxhttp://msdn.microsoft.com/en-us/library/s99zy1dh(v=vs.100).aspx。这些都不是很有用。

有没有人成功完成了我正在尝试的事情?

2 个答案:

答案 0 :(得分:0)

在VS2010上构建QtJambi确实有效。

请确认您从哪里获得Qt SDK以及从何处获得QtJambi来源。

您应该使用诺基亚或Digia SDK或Qt项目。例如来自https://qt-project.org/downloads的4.x(注意5.x此时可能不适用于2014年开始)。

你应该在https://qt.gitorious.org/qt-jambi/qtjambi-community的git树上工作(这是唯一维护的树)。请确认您正在使用的commit-id。

如果您没有Win7的git,请在安装后查看http://git-scm.com/download/win,您可以打开“git bash”shell并从干净的目录中查看来源git clone git://gitorious.org/qt-jambi/qtjambi-community.git

您是否可以使用VS2010提供的开始菜单选项确认您已在Win7上正确启动了cmd.exe shell。例如Visual Studio 2010 Command Prompt并从此处确认您已设置环境变量JAVA_HOME(指向您的JDK)和QTSDK(指向包含MS2010桌面版本的Qt SDK顶层目录)。

我的猜测是你没有使用正确的Qt Jambi源代码树。自2011年12月以来,树中已存在补丁,以支持4.8.x.这似乎解决了您遇到的问题。

答案 1 :(得分:0)

已经成功地从QtJambi主干编译了QtJambi。然后我使用了Qt-project.org的Qt 4.8.4 SDK。 http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-win-opensource-4.8.5-vs2010.exe 我现在用了好几个月,效果很好:)。

享受QtJambi!