QMake:获取输出可执行文件的完整路径

Ole*_*lin 6 qt qmake

在我的 QMake .pro 文件中,我想运行 install_name_tool 来替换一些库路径。为此,我需要确定输出可执行文件的路径。特别是在 macx 上,可执行文件的路径如下所示

<build_directory>/<configuration_name>/<target_name>.app/Contents/MacOS/<target_name>
Run Code Online (Sandbox Code Playgroud)

我想通了

message("build_directory=$${OUT_PWD}")
message("target_name=$${TARGET}")
Run Code Online (Sandbox Code Playgroud)

是否有 QMake 变量来填充 configuration_name?

默认情况下,它应该为发布配置返回“release”,为调试配置返回“debug”。从我在网上看到的人只是明确定义了 $${DESTDIR}

debug { DESTDIR = debug }
release { DESTDIR = release }
debug_and_release { DESTDIR = bin }
Run Code Online (Sandbox Code Playgroud)

如果未定义 message("DESTDIR=$$DESTDIR") 返回 DESTDIR 的空值。

phy*_*att 2

这有效:

CONFIG(debug, debug|release) {
    DEBUG_OR_RELEASE = debug
}  else {
    DEBUG_OR_RELEASE = release
}
Run Code Online (Sandbox Code Playgroud)

那么完整的输出路径是:

$${OUT_PWD}/$${DEBUG_OR_RELEASE}
Run Code Online (Sandbox Code Playgroud)