How to automate Qt moc?

2019-05-07 19:00发布

I have to run the following commands from Qt command prompt: qmake -project then make and this gives me the debug folder with the Moc file.
This is strangely the only way my PC will generate the moc_.cpp file.

So how can I automate the task of these commands so I don't have to use these commands again?

标签: c++ qt qmake moc
2条回答
三岁会撩人
2楼-- · 2019-05-07 19:58

I guess you have two choices.

  1. call qmake from a parent make process and do a multilevel build. ("Recursive make".)

  2. directly run the meta-object compiler from rules in your makefile

If the second, this page on using the meta-object compiler may help.

查看更多
时光不老,我们不散
3楼-- · 2019-05-07 19:59

You should not run qmake -project multiple times. The -project option is meant to provide you a template project file for you to edit. An equivalent of what you are doing in an IDE would be creating a "New Project" every time you want to build. After you have the initial project, you should edit it manually, add files when you have new files, etc. If some header file changes, the generated Makefile will notice it and call moc on it to update the moc_*.cpp file automatically. So:

  1. Run qmake -project when you start working on a project.
  2. Run qmake when you want to generate Makefiles.
  3. Run make when you want to build the project.
查看更多
登录 后发表回答