如何使用 QMake 获取平台相关的输出文件名?

How to get platform dependent output filename with QMake?

假设我有一个qmake工程文件*.pro:

# some stuff ...

TARGET = my_binary

# other stuff...

include( $$PWD/post.pri )

post.pri 文件中(因为我想重用这个 *.pri 文件所做的一切),我想获得 complete 名称的输出文件。

例如,如果是 app,那么在 windows 上我想得到 my_binary.exe 并且在 linux 上 my_binary。或者,如果该项目是一个共享库,我想分别获得 my_binary.dlllibmy_binary.so。如果是静态库,则相同,我希望 my_binary.liblibmy_binary.a.

我已经尝试了 未记录 qmake 变量 QMAKE_FILE_OUT 但没有成功。

您可以在 .pro 脚本中执行此操作:

load(resolve_target)
message($$QMAKE_RESOLVED_TARGET)

它将根据您的平台和项目 TEMPLATE 输出构建路径和目标名称。