0

我已经在 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。这些都没有太大帮助。

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

4

2 回答 2

0

已在 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!

于 2013-07-08T11:51:18.147 回答
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 树上工作(这是唯一维护的树)。请确认您正在使用的提交 ID。

如果您没有用于 Win7 的 git,请在安装后查看http://git-scm.com/download/win,您可以打开“git bash”外壳并从干净的目录中检查源代码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。这似乎解决了您遇到的问题。

于 2013-02-26T16:58:47.203 回答