问题
我正在使用qmake和QT Creator处理多可执行文件的QT项目。每个可执行文件都有自己的.pro文件,所有这些文件都包含在一个总体的.pro文件中(模板=子目录)。每个独立的.pro文件还包括一个共同的.pri文件,该文件设置了DESTDIR,以便所有可执行文件最终都在同一个位置。这个DESTDIR取决于是编译Debug还是Release版本。这一切都很好,直到我们通过另一个子目录.pro添加了一组可执行文件。整体设置看起来像这样:
- All.pro
- | - Project1.pro
- | - Project2.pro
- | - Subdirs.pro
- | -- | - Project3.pro
- | -- | - Project4.pro
如果您拥有一个新检出的副本,则可以运行qmake,并且一切都能正常工作,直到您从Debug切换到Release或者反之。当您这样做时,Project1.pro和Project2.pro会更新并将其可执行文件放置在正确的目录中,但是Project3.pro和Project4.pro会使用旧目录。
尝试
如果我手动删除所有受影响的makefile,qmake将生成新的makefile。我想我可以编写某种预编译命令来每次删除所有makefile,但这似乎是错误的方法,更不用说我需要花费多少时间来确保它在我们的所有平台上都能正常工作。
我在QT 4.6.4到4.8.1中尝试过这种情况。
当我使用QT Creator时,我通过使用不同的构建配置在Debug和Release模式之间切换,这模仿了我在命令行上所做的操作(即添加或删除CONFIG += debug)
问题
- 是什么阻止了qmake更新makefile?
- 如果这只是qmake的一个错误,最佳解决方案是什么?
非常感谢您提供的任何帮助。