如何通过CMakeLists.txt为androiddeployqt设置额外自定义参数(Qt6.4+)
为androiddeployqt配置自定义参数(CMakeLists.txt方式)
Qt 6.4及以上版本的配置方法
Qt 6.4及以上正式支持通过CMake变量直接向androiddeployqt的调用追加自定义参数,具体使用QT_ANDROID_DEPLOY_QT_EXTRA_ARGS这个CMake变量即可。
在你的CMakeLists.txt中,找到find_package(Qt6 ...)的代码段之后,添加如下配置:
# 配置androiddeployqt的额外参数 set(QT_ANDROID_DEPLOY_QT_EXTRA_ARGS "--install-path" "/custom/path" "--no-strip" "--extra-libs" "/path/to/extra/lib.so" CACHE STRING "Extra arguments passed to androiddeployqt" )
这个变量的内容会被直接追加到androiddeployqt的命令行调用末尾,比如原本的deploy命令会变成:androiddeployqt --input ... --output ... --install-path /custom/path --no-strip --extra-libs /path/to/extra/lib.so
Qt 6.3及以下版本的替代方案(可选)
如果使用的是更早的Qt版本,没有上述变量支持,需要自定义部署步骤:
- 先找到Qt生成的
android_deploy相关目标,通过get_target_property获取原有命令。 - 复制原有命令并追加自定义参数,重新设置目标的COMMAND。
示例代码大致如下:
get_target_property(ANDROID_DEPLOY_CMD android_deploy COMMAND) list(APPEND ANDROID_DEPLOY_CMD "--custom-arg" "value") set_target_properties(android_deploy PROPERTIES COMMAND "${ANDROID_DEPLOY_CMD}")
这种方式需要注意目标名称可能因Qt版本略有差异,需要自行验证。
注意事项
- 参数格式需严格遵循androiddeployqt的命令行规范,带值的参数要分开写(如
--arg value而非--arg=value,部分参数两种格式兼容,但建议按官方要求)。 - 确保变量设置在
find_package(Qt6)之后,否则Qt的CMake模块无法读取到配置。
内容的提问来源于stack exchange,提问作者morte
相关产品推荐
相关产品推荐

