Qt Jambi构建失败(VS2010)



我已经在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.4includeQtCore" -I"....qt-everywhere-opensource-src-4.8.4include" -I"..qtjambi" -I"..common" -I"C:Program FilesJavajdk1.7.0_09include" -I"C:Program FilesJavajdk1.7.0_09includewin32" -I"." -I"....qt-everywhere-opensource-src-4.8.4includeActiveQt" -I"release" -I"....qt-everywhere-opensource-src-4.8.4mkspecsdefault" -Forelease @C:UsersTYLERS~1AppDataLocalTempnmFBCC.tmp qtjambishell_QLocale.cpp
..cppcom_trolltech_qt_coreqtjambishell_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
..cppcom_trolltech_qt_coreqtjambishell_QLocale.cpp(808) : see previous definition of 'Java_com_trolltech_qt_core_QLocale__1_1qt_1toCurrencyString_1int_1String__JILjava_lang_String_2'
..cppcom_trolltech_qt_coreqtjambishell_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
..cppcom_trolltech_qt_coreqtjambishell_QLocale.cpp(832) : see previous definition of 'Java_com_trolltech_qt_core_QLocale__1_1qt_1toCurrencyString_1long_1String__JJLjava_lang_String_2'
..cppcom_trolltech_qt_coreqtjambishell_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
..cppcom_trolltech_qt_coreqtjambishell_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 FilesMicrosoft Visual Studio 10.0VCBINcl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:Program FilesMicrosoft Visual Studio 10.0VCBINnmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

有一些MSDN条目与此错误号有关--http://msdn.microsoft.com/en-us/library/dt309377.aspx和http://msdn.microsoft.com/en-us/library/s99zy1dh(v=vs.100).aspx。这两者都没有多大帮助。

有人成功地完成了我的尝试吗?

在VS2010上构建QtJambi确实有效。

请确认您从何处获得Qt SDK,以及从何处获取QtJambi源代码。

您应该使用诺基亚或Digia SDK或Qt Project。例如来自的4.xhttps://qt-project.org/downloads(注5.x目前不起作用,可能在2014年初)。

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

如果您没有适用于Win7的git,请查看http://git-scm.com/download/win安装后,您可以打开"gitbash"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。这似乎解决了您所面临的问题。

已经在gitorious成功地从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!

最新更新