因程序要使用QtDBus4.dll,于是在Qt安装目录下的SRC目录下找到dbus工程,开始自己编译,编译中需要用到winDBus这个库,已经下载并编译好,只是把Qt中的dbus下的dbus.pro文件中添加上关于winDBus的包含和库路径,一切就绪开始编译,成功生成了QtDBus4.lib 和QtDBus4.dll,可是文件大小只有9K,显然不对,再看下编译过程,发现很多moc失败,生成的moc_xxx.cpp大小为0K,提示信息如下 :
qdbusabstractinterface.h(0): Note: No relevant classes found. No output generated.
qdbuspendingcall.h(0): Note: No relevant classes found. No output generated.
qdbusservicewatcher.h(0): Note: No relevant classes found. No output generated.
qdbusconnectioninterface.h(0): Note: No relevant classes found. No output generated.
...,好多这类信息
不知何故,跑到命令行下,直接moc,发现能正常生成cpp文件,而且大小为4K,于是检查Creator下moc命令:
d:\Qt\4.8.6\bin\moc.exe -DQT_SHARED -DQT_THREAD_SUPPORT -DUNICODE -DWIN32 -DQT_BUILD_DBUS_LIB -DDBUS_API_SUBJECT_TO_CHANGE -DQT_MAKEDLL -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -D_USE_MATH_DEFINES -DQT_DLL -DQT_XML_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -I"..\..\include\QtCore" -I"..\..\include\QtXml" -I"..\..\include" -I"..\..\include\QtDBus" -I"tmp" -I"..\..\include\ActiveQt" -I"debug" -I"..\..\mkspecs\win32-msvc2010" -D_MSC_VER=1600 -DWIN32 qdbusabstractinterface.h -o debug\moc_qdbusabstractinterface.cpp
单独把这行拷贝到命令行下执行问题是一样的,但只要把 -I"..\..\include"去掉就能正常MOC,可如果在creator中去掉这个路径,编译其他文件就会因路径问题而报错,请问这个问题该如何解决