记录一个 qt+cmake 项目不生成 ui_xxx.h 文件的问题
最近做一个 Qt 的项目的代码迁移到新平台,遇到一个问题。这个项目使用的 CMake 构建脚本,项目中的某个ui
文件怎么都不能生成 对应的ui_xxx.h
文件,其他的文件都没有问题,使用qmake
构建也没有问题。
经过排查,问题原因如下:
#include"ui_xxx.h"
上面 #include
和后面的头文件之间没有空格。
CMake 使用下面的函数调用来实现ui
文件的查找。
Uic_.RegExpInclude.compile("(^|\n)[ \t]*#[ \t]*include[ \t]+"
"[\"<](([^ \">]+/)?ui_[^ \">/]+\\.h)[\">]");
也就是#include
和后面的头文件之间必须要一个或多个空格或者Tab符,否则就匹配不上。
参考资料
下面的链接中是一些相关的资料,包括其他原因导致的不生成ui_xxx.h
头文件的情况。