我将Qt与CMake一起使用,因为CMake比我自己的团队工作更容易.我经常遇到一个错误
ui_*.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
通常,当我的项目已经有一个ui_*.h文件开始时,它只会修改该.h文件.我在我的CMake文件中使用下面的命令,所以它应该.ui用适当的ui_*.h文件包装我的文件.
qt4_wrap_ui (mainwindow mainwindow.ui)
target_linked_library (mainwindow ${QT_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)
但有时这不起作用,我必须完全重建整个ui_*.h文件.我究竟做错了什么?
小智 11
对于任何在将来遇到此问题的人.我几乎跟着这里的演示.
http://doc.qt.io/qt-5/cmake-manual.html
添加,以下行到CMakeLists.txt应该摆脱这个问题.
set(CMAKE_AUTOUIC ON)
Run Code Online (Sandbox Code Playgroud)
来自CMake文档
https://cmake.org/cmake/help/v3.0/prop_tgt/AUTOUIC.html
AUTOUIC是一个布尔值,指定CMake是否自动处理Qt uic代码生成器,即无需使用QT4_WRAP_UI()或QT5_WRAP_UI()宏.目前支持Qt4和Qt5.
一个小注意,这个属性在CMake版本3.0.2+中可用.所以在下面,@ rbaleksandar的解决方案应该更合适.
希望有所帮助.