我目前的任务是在Windows 10下,使用(静态) Qt和VTK为应用程序设置一个工作环境。
我成功地安装了QT5.11.1静态版本,现在想要构建VTK。任何版本的VTK都可以,只要它与QT5.11.1兼容,就必须构建Qt (VTK_Group_Qt)。对于我的版本,我决定使用VTK 8.1.1,但正如所说的,任何版本都可以。
我使用CMake GUI配置VTK,使用MinGW Makefiles (我使用MinGW64),这是有效的。然后,在打开VTK_Group_Qt之后,我想继续生成Makefile。Qt的路径和版本已经正确识别:
/T1597-1989 C:/build_environment/qt-everywhere-src-5.11.1/qtbase/lib/cmake/Qt5Core技术条件Qt5Core_DIR 商品价格-C:/build_environment/qt-everywhere-src-5.11.1/qtbase/lib/cmake/Qt5Gui Qt5Widgets_DIR C:/build_environment/qt-everywhere-src-5.11.1/qtbase/lib/cmake/Qt5Widgets 商业、商业、金融等领域的商品、商业、金融等行业的商品、商品、金融、金融、商业、金融等行业的商品、商业、金融、商业、金融、金融等行业的商品、商业、金融、商业、金融等行业的商品价格、商品价格、
确保所有这些都存在。之后,我点击Generate并得到以下错误:
导入的目标“Qt5 5::Core”引用该文件 粉末冶金“C:/build_environment/qt-everywhere-src-5.11.1/qtbase/.../qt-everywhere-src-5.11.1/qtbase//mkspecs/win32-g++” 但是这个文件不存在。可能的原因包括: *该文件已被删除、重命名或移动到另一个位置。 *安装或卸载过程未成功完成。 *安装包有故障,并装有 粉末冶金“C:/build_environment/qt-everywhere-src-5.11.1/qtbase/lib/cmake/Qt5Core/qt5CoreConfigExtras.cmake” 但并不是所有它引用的文件
现在,我们看到它从qtbase向上进入一个文件夹,然后进入它当前所在的文件夹,这当然不是一个合法的路径。也就是说,由于某种原因,它试图向上然后再下降,但没有正确的文件夹数量。
我可以尝试移动我的Qt安装的内容,这样路径才是合法的,但我认为这几乎是一种气味。在文件夹结构中摆弄应该是正确的不是我所理解的一个好的解决方案。我宁愿改变Qt的一个.cmake文件,但就我而言,这更像是一种临时的方法,而不是真正的解决方案。
到目前为止,我尝试过的一件事是查看所有CMake变量(检查CMake GUI中的Advanced ),以确定是否一切看起来都正常,尤其是查看是否在那里找到了通往mkspecs的错误路径。没有发现什么特别有趣的东西。
有人知道出了什么问题吗?如果需要更多信息,请告诉我。同时,我将尝试构建其他版本的VTK,但我不太相信这将解决这个问题。
发布于 2018-08-24 11:15:58
我找到了一个解决办法,我想在这里提出,但我认为这是一个临时的方法,而不是一个实际的解决办法,我希望看到一个更好的答案。
我去了qt-everywhere-src-5.11.1/qtbase/lib/cmake/Qt5Core/并修改了文件Qt5CoreConfigExtrasMkspecDir.cmake (在复制后)。
原始文件包含一行
set(_qt5_corelib_extra_includes "${_qt5Core_install_prefix}/.../qt-everywhere-src-5.11.1/qtbase//mkspecs/win32-g++")这会导致错误的道路。我把它换成了
set(_qt5_corelib_extra_includes "${_qt5Core_install_prefix}/mkspecs/win32-g++")现在效果很好。尽管如此,我对更改Qt文件并不满意,因为我认为这个问题的答案是“这个著名的库有错吗?”“很有可能我用错了。”
一个可能的解释是,在配置Qt时,我使用了错误的安装前缀,但不应该允许我在其中放置任何有效的可写路径吗?此外,前缀仍在cmake文件中,因此具有一定的有效性。
虽然这是一个答案,因为它解决了问题,我真的很想看看评论,什么可能是最初的错误。
https://stackoverflow.com/questions/52002432
复制相似问题