0

有没有办法强制重新编译其他项目moc文件?我使用visual studio,我得到了一个qt项目,在那里我添加了其他带有接口和信号/插槽的项目类(比如说thing.cpp,,,thing.h

ui_thing.h(已包含generated files文件夹),

moc_thing.cppgenerated files\debug(因为主要项目处于调试模式),

thing.ui进入Form files

在我决定进行一些更改,添加一些插槽/信号之前,它工作正常。你可以猜到包含的moc文件不会重新编译。我决定更改thing.h.

我从主项目文件中复制了参数,所以在命令行部分有

"$(QTDIR)\bin\moc.exe" "$(InputPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp" -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_CORE_LIB -DQT_GUI_LIB -DQWT3D_DLL -DQT_DLL -DQT_SVG_LIB -DQT_SCRIPT_LIB -DQT_MULTIMEDIA_LIB "-I.\parsers" "-I$(QWTDIR)\include" "-I.\ProductionHistory\GeneratedFiles" "-I.\ProductionHistory" "-I.\GeneratedFiles" "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I$(QTDIR)\include\qtmain" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtSql" "-I$(QTDIR)\include\QtGui" "-I." "-I$(Boost)\." "-I.\well groups widget" "-I.\rules widget" "-I.\gui" "-I$(QTDIR)\include\QtSvg" "-I$(QTDIR)\include\QtScript" "-I$(QTDIR)\include\ActiveQt" "-I$(QTDIR)\include\QtMultimedia"

在输出数据部分".\databaseOpening\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp"

在附加依赖项部分有 "$(QTDIR)\bin\moc.exe"; $(InputPath)

但它仍然没有重新编译。有没有办法解决这个问题?

4

1 回答 1

1

尝试检查/修复项目文件 *.vcxproj

  1. 在PropertyGroup Label="Globals"部分添加关键字
<PropertyGroup Label="Globals">
   <ProjectGuid>....
   <RootNamespace>...
   <Keyword>Qt4VSv1.0</Keyword> <-----------------
</PropertyGroup>
  1. 检查 ProjectExtensions/VisualStudio/UserProperties 部分的属性Qt5Version_x0020_Win32 (>> Qt5... )
 <ProjectExtensions>
    <VisualStudio>
      <UserProperties MocDir=".\GeneratedFiles\$(ConfigurationName)" 
         Qt5Version_x0020_Win32="$(DefaultQtVersion)"  <-------
         UicDir=".\GeneratedFiles" />
    </VisualStudio>
  </ProjectExtensions>
于 2018-03-01T07:58:23.787 回答