被.pro文件中的相对路径给整糊涂了,仔细研究后,原来.pro文件中有两种相对路径。
一种情况下./表示.pro文件所在的目录
另一种情况下./表示构建生成目录
INCLUDEPATH SOURCE FORM HEADERS 这些变量中使用的./指的是.pro文件所在的目录
而DESTDIR OBJECTS_DIR MOC_DIR UI_DIR这些变量中使用的./指的是构建生成目录。
如果没有选择影子构造(shadow build),通常构建生成目录和.pro文件所在目录是同一个目录但是如果指定了shadow build,且指定了构建生成目录,情况就不一样了