编译qt-win-opensource-4.8.2-vs2010中出现的一个bug

来源:互联网 发布:爱优品是个网络平台吗? 编辑:程序博客网 时间:2024/06/06 11:47

1.下载好qt-win-opensource-4.8.2-vs2010.exe解压安装后,打开VS2010选择Tools->Visual Studio Command Prompt打开Dos窗口

2.进入Qt的安装目录(默认是:C:\Qt\4.8.2)

    运行命令 configure -platform win32-msvc2010

    选择o回车,Y回车

3.接着是自动配制编译环境,等配置结束后,运行nmake,运行过程中遇到如下bug:

DefaultLocalizationStrategy.cppC:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\yvals.h(21) : warning C4005: '_HAS_TR1' : macro redefinition        command-line arguments :  see previous definition of '_HAS_TR1'platform\DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constantplatform\DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected end of file in macro expansionNMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cl.EXE"' : return code '0x2'Stop.NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'Stop.NMAKE : fatal error U1077: 'cd' : return code '0x2'Stop.NMAKE : fatal error U1077: 'cd' : return code '0x2'Stop.

这个bug的官方report见 链接点击。

解决如下: 打开文件: C:\Qt\4.8.2\src\3rdparty\webkit\Source\WebCore\platform\DefaultLocalizationStrategy.cpp 找到327行

删除<selection>的引号“”

如下:

String DefaultLocalizationStrategy::contextMenuItemTagLookUpInDictionary(const String& selectedString){#if defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD)    UNUSED_PARAM(selectedString);    return WEB_UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item");#else#if USE(CF)    RetainPtr<CFStringRef> selectedCFString(AdoptCF, truncatedStringForLookupMenuItem(selectedString).createCFString());    return formatLocalizedString(WEB_UI_STRING("Look Up “%@”", "Look Up context menu item with selected word"), selectedCFString.get());#else    return WEB_UI_STRING("Look Up "<selection>"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));#endif#endif}


改为:

String DefaultLocalizationStrategy::contextMenuItemTagLookUpInDictionary(const String& selectedString){#if defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD)    UNUSED_PARAM(selectedString);    return WEB_UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item");#else#if USE(CF)    RetainPtr<CFStringRef> selectedCFString(AdoptCF, truncatedStringForLookupMenuItem(selectedString).createCFString());    return formatLocalizedString(WEB_UI_STRING("Look Up “%@”", "Look Up context menu item with selected word"), selectedCFString.get());#else    return WEB_UI_STRING("Look Up <selection>", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));#endif#endif}


参考链接:http://www.cnblogs.com/russinovich/archive/2012/06/30/2571032.html

原创粉丝点击