Qt CMake ExternalProject\u添加警告时停止执行

Qt CMake ExternalProject\u添加警告时停止执行,qt,visual-studio-2013,cmake,Qt,Visual Studio 2013,Cmake,我正在使用一系列ExternalPorject_Add来使用CMake静态下载、配置、构建和安装QT5。在完成配置脚本之前,一切都进展顺利。Qt5 configure脚本在静态编译时发出以下警告,之后将忽略生成和安装步骤: CUSTOMBUILD : warning : Using static linking will disable the use of plugins. Make sure you compile ALL needed modules into the

我正在使用一系列ExternalPorject_Add来使用CMake静态下载、配置、构建和安装QT5。在完成配置脚本之前,一切都进展顺利。Qt5 configure脚本在静态编译时发出以下警告,之后将忽略生成和安装步骤:

CUSTOMBUILD : warning : Using static linking will disable the use of plugins.
           Make sure you compile ALL needed modules into the library.
我的最后一个ExternaProject_Add如下所示(还有其他一些方法可以将下载步骤分解为不同的目标):

对于如何让项目忽略警告(警告是什么导致它停止的?)并继续构建和安装步骤,您有什么想法吗

我目前正在windows上运行(使用跨平台安装程序),并使用带有cmake的visual studio 2013生成器


谢谢

configure脚本返回一个非零结果,导致后续步骤失败,即使警告实际上不是致命的。我已经不再使用
ExternalProject
,而是使用
add\u custom\u target
实现了相同的功能。我遇到了与您相同的问题。事实证明,这与警告甚至退出代码(在本例中)无关

之所以会发生这种情况,是因为配置文件是一个批处理文件,而Visual Studio正在另一个批处理文件中执行配置生成步骤

这意味着,如果不在
配置
前面使用关键字
调用
,您将分支到
配置.bat
,并且永远不会返回并执行Visual Studio配置步骤中的其余步骤

要解决此问题,您可以执行以下操作:

ExternalProject_Add(qt5_build
    DOWNLOAD_COMMAND "" UPDATE_COMMAND "" PATCH_COMMAND ""
    SOURCE_DIR ${QT5_REPO_PATH}
    CONFIGURE_COMMAND call configure.bat ${QT5_CONFIGURE}
    BUILD_COMMAND nmake BUILD_IN_SOURCE 1
    INSTALL_COMMAND nmake install)

谷歌搜索警告信息怎么样?您可能会找到一些资源来描述可能出现的问题……唉……google没有找到让ExternalProject忽略警告的方法:)
ExternalProject\u Add
忽略警告和错误消息:只有脚本的结果会影响其行为。而给定的警告(和任何其他警告一样)不可能生成脚本的非零结果。顺便说一句,您总是可以尝试手动配置/构建/安装外部项目,看看会发生什么。或者您可以查看剩余的构建日志。但是
add\u custom\u target
也会检查其命令参数的返回值。与
ExternalProject\u Add
相比,它有什么帮助?我必须将它分成两个独立的自定义目标…首先是configure,其次是build/install命令。
ExternalProject_Add(qt5_build
    DOWNLOAD_COMMAND "" UPDATE_COMMAND "" PATCH_COMMAND ""
    SOURCE_DIR ${QT5_REPO_PATH}
    CONFIGURE_COMMAND call configure.bat ${QT5_CONFIGURE}
    BUILD_COMMAND nmake BUILD_IN_SOURCE 1
    INSTALL_COMMAND nmake install)