Qt 5.1问题Qt5 :: XmlPatterns(VS2012 + CMake)

时间:2013-07-04 14:39:32

标签: qt visual-c++ cmake

我为VS2012 x64构建了Qt5.1。现在我想用Qt构建一个简单的UI应用程序。不幸的是,CMake给了我一些错误消息:

CMake Error at C:/thirdparty/vs2012/x64/qt-everywhere-opensource-src-5.1.0/qtbase/lib/cmake/Qt5XmlPatterns/Qt5XmlPatternsConfig.cmake:15 (message):
  The imported target "Qt5::XmlPatterns" references the file

     "C:/thirdparty/vs2012/x64/qt-everywhere-opensource-src-5.1.0/qtbase/include/QtXmlPatterns/5.1.0"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "C:/thirdparty/vs2012/x64/qt-everywhere-opensource-src-5.1.0/qtbase/lib/cmake/Qt5XmlPatterns/Qt5XmlPatternsConfig.cmake"

  but not all the files it references.

Call Stack (most recent call first):
  C:/thirdparty/vs2012/x64/qt-everywhere-opensource-src-5.1.0/qtbase/lib/cmake/Qt5XmlPatterns/Qt5XmlPatternsConfig.cmake:58 (_qt5_XmlPatterns_check_file_exists)
  CMakeLists.txt:59 (find_package)

同一个项目适用于Qt 5.0.2和Qt 5.0.1。

我设置了Qt5Core_DIR和Qt5Xml_DIR的路径,但它不起作用Qt5XmlPatterns_DIR。查看Qt lib目录时,我看到Qt5XmlPatterns构建成功 - 我也可以使用设计器应用程序。

我使用此说明构建Qt 5.1.0:

  1. configure -developer-build -opensource -nomake examples -nomake tests
  2. NMAKE
  3. 目录“C:/thirdparty/vs2012/x64/qt-everywhere-opensource-src-5.1.0/qtbase/include/QtXmlPatterns/5.1.0”不存在。但目录“C:/thirdparty/vs2012/x64/qt-everywhere-opensource-src-5.1.0/qtbase/include/QtXmlPatterns”确实存在。该目录只包含一个文件:“QtXmlPatternsDepends”

    任何想法出了什么问题?

    更新:我现在使用Qt网站(MS2012 x64)提供的安装程序。下载并安装后,我尝试使用已安装的版本设置项目。它这次工作 - 在构建Qt 5.1.0时可能出现问题 - 但是:似乎CMake配置文件指向错误的目录(“qtbase”而不是“qtxmlpatterns”) - 可能有些东西无法正常工作在Qt5XmlPatternsConfig.cmake文件中......

    第二次更新:我从头开始重建Qt5.1 - 但我仍然遇到同样的错误......

    第三次更新:我将文件从目录“C:\ thirdparty \ vs2012 \ x64 \ qt-everywhere-opensource-src-5.1.0 \ qtxmlpatterns \ include \ QtXmlPatterns”复制到“ C:\ thirdparty \ vs2012 \ x64 \ qt-everywhere-opensource-src-5.1.0 \ qtxmlpatterns \ include \ QtXmlPatterns“并为QtDeclarative和QtScript做了同样的事情

    CMake中的所有错误都消失了 - 但是在编译某些标题时无法找到...

1 个答案:

答案 0 :(得分:1)

我正在为vs2012使用Qt5.1的自建版本,我不得不修改每个$ {prefix} / lib / cmake / $ {Qt5LibraryName}文件夹中的Qt5xxx.cmake文件。例如,我不得不修改 来自

的Qt5AxContainer.cmake

。 。 。 集(_Qt5AxContainer_OWN_INCLUDE_DIRS) 。

。 。  设置(_Qt5AxContainer_OWN_INCLUDE_DIRS       “$ {_ qt5Gui_install_prefix} /../ qtactiveqt /包括/”       “$ {_ qt5Gui_install_prefix} /../ qtactiveqt /包括/ ActiveQt可”       ) 。

我发现_Qt5XXX_OWN_INCLUDE_DIRS用于实际标头的目录路径,并且必须正确添加/修改多个路径。

虽然我还没有将此行为提交给Qt的错误跟踪系统,但它似乎是构建脚本中的错误。