我有一个项目结构如下。A.dll 依赖于 B.exe,B.exe 依赖于自定义目标 C。自定义目标 C 生成一些文件,B.exe 将这些文件打包在存档中作为目标 B 上的后期构建步骤。
当我第一次构建 A.dll ,因为这是第一次构建 B.exe,并且作为构建后步骤 myArchieve.a 被构建。从那时起,如果我构建 A.dll,B.exe 就不会被重新构建,因为它是一个可执行文件,并且由于以前的构建而存在。因此的问题是:
1. 我总是有一个陈旧的可执行文件
2. 如果我对 C 进行一些更改并触发 A.dll 的构建,cmake 只会重新构建 C 和 A。它不会重新构建 B.exe 并且作为结果它错过了存档步骤,我的存档永远不会更新。
这个问题有解决方案吗?我已经阅读了这个链接并且没有太大帮助。