POST_TARGETDEPS 报错 No rule to make target 'copy_headers', needed by '../../../Ground/library/Logger/lib/libLogger.a
时间: 2023-07-23 09:26:42 浏览: 88
这个错误提示是因为 `POST_TARGETDEPS` 无法找到 `copy_headers` 目标。您需要确保已经在 `QMAKE_EXTRA_COMPILERS` 中定义了该目标,并将其添加到 `QMAKE_EXTRA_TARGETS` 变量中。
以下是一个示例 `.pro` 文件,可以将所有的头文件复制到指定目录中:
```
HEADERS += header1.h \
header2.h \
header3.h \
...
HEADERS_DESTDIR = path/to/headers
copy_headers.input = HEADERS
copy_headers.output = headers
copy_headers.commands = $(COPY_DIR) $$PWD $$HEADERS_DESTDIR
QMAKE_EXTRA_COMPILERS += copy_headers
QMAKE_EXTRA_TARGETS += headers
headers.target = headers
headers.depends = copy_headers
headers.commands =
POST_TARGETDEPS += headers
```
在这个示例中,我们使用 `QMAKE_EXTRA_COMPILERS` 变量来定义一个名为 `copy_headers` 的自定义编译器,它的输入为 `HEADERS`,输出为 `headers`,命令为将当前目录复制到 `$$HEADERS_DESTDIR` 目录中。然后,我们使用 `QMAKE_EXTRA_TARGETS` 变量来创建一个名为 `headers` 的自定义目标,并将其添加到 `QMAKE_EXTRA_TARGETS` 变量中。这样,在构建项目时,就会自动执行 `copy_headers` 编译器,并将所有头文件复制到指定目录中。
请注意,`headers.commands` 变量需要设置为空,否则会出现类似于 "No rule to make target" 的错误提示。
最后,我们将 `headers` 目标添加到 `POST_TARGETDEPS` 变量中,以确保在构建目标库时,先执行 `copy_headers` 编译器,再生成目标文件。
希望这个方法可以帮助您实现将所有头文件复制到指定目录的功能。
阅读全文