相关疑难解决方法(0)

如何在Windows或Linux下编译Qt 5,32或64位,静态或动态VS2010,VS2012,VS2013或VS2015 Express或g ++

只是一个帖子来帮助那些尝试这样做的人,因为我没有博客.

这也适用于linux.随意编辑并改进它.

c++ qt compilation visual-studio-2010 visual-studio-2012

51
推荐指数
1
解决办法
5万
查看次数

什么(设置PATH = ...;%PATH:)= ^)%)在Windows shell脚本中是什么意思,我怎样才能在Qt5 nmake构建的上下文中克服这一行的失败?

在尝试使用VS 2012构建Qt5(32位)障碍过程中,我遇到了另一个构建错误.

它是:

(设置PATH = C:\ Users\daniel347x\Desktop\Backup\__ Dan_Root\qt5\qtbase\lib;%PATH:)= ^)%)&C:\ Users\daniel347x\Desktop\Backup__Dan_Root\qt5\qtbase\bin\uic.exe对话框\ qfiledialog.ui -o ui_qfiledialog.h

NMAKE:致命错误U1077:'(设置':返回代码'0xc0000135'

停止.

当我执行详细的Google/StackOverflow搜索时,我找不到任何与(set PATH=...;%PATH:)=^)%)失败问题相关的信息(返回错误代码0xc0000135).

请注意,nmake很长一段时间(超过1小时)快乐地切换目录,运行中间.exe,以及编译和链接代码文件.

我在32位Visual Studio 2012工具命令提示符下运行nmake(以及运行configure); 据我所知,我的所有path变量都已正确设置(它们包括32位Perl和32位Python的路径,尽管我认为这不是相关的).

我已重新启动计算机,并运行具有管理员权限的VS 2012工具命令提示符(如果是权限错误),尝试运行nmake,并发生相同的错误.

然后我试图弄清楚错误究竟是什么.那时,我对这个命令行语句的语法感到困惑,该语句显然是在Makefile触发的shell脚本中执行的:

(set PATH=...;%PATH:)=^)%)
                   ^^^^^^ // What do the symbols :)=^)% mean?
Run Code Online (Sandbox Code Playgroud)

我不明白这个脚本的上下文中的符号:)= ^)%.

有人可以告诉我这些符号在Windows shell脚本的上下文中是什么意思(在nmakeMakefile 的上下文中执行(使用VS 2012构建32位Qt5))?

作为一个附加的可选问题,我可以做些什么来克服这个错误并继续构建Qt5而不会阻止进度的这个错误?

shell qt makefile windows-7 qt5

5
推荐指数
1
解决办法
3547
查看次数

如何在Windows和MSVC 2015上构建Qt 5.5 QtWebEngine

有没有人使用Microsoft Visual Studio C++ 2015在Windows上成功构建Qt的WebEngine/QtWebEngine/QWebEngine?

必要的先决条件是什么?

我设法自己构建Qt,但QtWebEngine被跳过了,所以我尝试nmake module-qtwebengine了失败有几个原因.

qt build qt5 visual-studio-2015 qtwebengine

4
推荐指数
1
解决办法
5997
查看次数

使用VS2012编译器在32位版本的Qt5中支持ICU会导致Qt5构建失败; 因此Webkit也是无法构建的

我试图用VS2012编译器构建Qt5,遇到了另一个障碍.

启用ICU时(配置命令行中的"-icu",以及VS2012中正确的32位ICU构建以及所有ICU路径(header,.lib和.dll)的正确包含),qtbase\src\corelib\codecs\qtextcodec.cpp返回行688 当要求名称为"US-ASCII"的编解码器时,NULL编解码器(ICU无法返回编解码器).

特别:

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 = …
Run Code Online (Sandbox Code Playgroud)

c++ icu qt5 visual-studio-2012

2
推荐指数
1
解决办法
1475
查看次数