首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用VS2012编译器的32位Qt5构建中的ICU支持会导致Qt5构建失败;因此,Webkit也是不可构建的

使用VS2012编译器的32位Qt5构建中的ICU支持会导致Qt5构建失败;因此,Webkit也是不可构建的
EN

Stack Overflow用户
提问于 2013-04-12 23:44:27
回答 1查看 1.5K关注 0票数 2

我在试图用VS2012编译器构建Qt5的long stream of obstacles中遇到了另一个。

如果启用了ICU (配置命令行上的“-icu”,以及VS2012中正确的32位ICU构建和所有ICU路径(报头、.lib和.dll)的正确包含),则当询问名称为"US-ASCII“的编解码器时,qtbase\src\corelib\codecs\qtextcodec.cpp的第688行返回一个空编解码器(ICU无法返回编解码器)。

具体地说:

代码语言:javascript
运行
复制
QTextCodec* QTextCodec::codecForLocale()
{
    QCoreGlobalData *globalData = QCoreGlobalData::instance();
    if (!globalData)
        return 0;

    QTextCodec *codec = globalData->codecForLocale.loadAcquire();
    if (!codec) {
#ifdef QT_USE_ICU

        // THIS BLOCK IS REACHED WHEN ICU IS ENABLED

        textCodecsMutex()->lock();

        // ***
        // The following codec returned is NULL!!!
        //   (Internally, it sets the codec name to "US-ASCII",
        //    and fails to find a codec with this name)
        // ***
        codec = QIcuCodec::defaultCodecUnlocked();

        textCodecsMutex()->unlock();
#else
        // setupLocaleMapper locks as necessary
        codec = setupLocaleMapper();
#endif
    }

    return codec;
}

稍后,上面提到的NULL编解码器变量被取消引用(在"lrelease.exe“实用程序的代码中),当"lrelease.exe”实用程序作为Qt5构建过程的一部分运行并试图执行转换时,它会由于这种NULL取消引用而崩溃,并导致Qt构建因错误而停止。

单步执行上面的QIcuCodec::defaultCodecUnlocked()函数会发现编解码器名称被设置为US-ASCII,并且没有找到具有该名称的编解码器。

因此,似乎不可能在Qt5的VS2012编译器32位版本中包含对ICU的支持。

更糟糕的是,由于Webkit依赖于Qt5中的ICU,这意味着Webkit也不能构建。

有没有人能告诉我,这是不是很可能是VS2012的Qt5的一个错误,或者是我在构建环境中没有正确设置一些东西?

同样有用的是,知道是否有人能够构建启用了ICU支持的VS2012编译器的Qt5。

我还在Qt论坛上有一个相关的、正在进行的帖子中的posted a comment

EN

回答 1

Stack Overflow用户

发布于 2013-07-12 11:55:04

Qt默认使用UTF-8。假设ICU51.2,在U_CHARSET_IS_UTF8定义为1的情况下重新构建ICU.可以是:#在source\common\unicode\platform.h中定义它(参见关于第523行的注释),或者您也可以在allinone.sln的所有ICU项目中将其添加到构建中(例如,右键单击,选择属性,选择配置属性>C/C++>预处理器,然后将其添加到预处理器定义中)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15975608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档