【发布时间】:2013-12-10 09:50:52
【问题描述】:
我用 C++/Qt 编写应用程序,有时我必须在 Windows 中编译它们。为此,我使用 MinGW。不幸的是,这使得可执行文件依赖于mingwm10.dll 和libgcc_s_dw2-1.dll。我更喜欢通过将所需的 DLL 复制到应用程序文件夹并像这样分发它来解决此类问题。我在 *.pro 文件中使用 QMAKE_POST_LINK 来自动化该过程。
不幸的是,由于各种原因,MinGW 最终位于我使用的不同系统上的不同目录中。有没有办法在 Qt 项目中获取编译器可执行文件的路径? MinGW 库位于其 exe 附近,因此可以解决问题。 谢谢。
更新
恐怕我说得不够清楚。
我知道 90% 的用户没有 Qt,99% 的 Windows 桌面上没有安装 MinGW。 这是我将所有需要的 DLL 与可执行文件一起分发的原因,以便它可以在任何地方运行而无需安装任何东西。我只是将它们复制到与 *.exe 相同的文件夹中。为了自动化这个复制过程,我在QMAKE_POST_LINK 中添加了一个copy 命令,它会在链接器完成链接我的程序后执行它。
问题是这个copy 命令仍然需要知道从哪里复制MinGW 库。因此我的问题是:如何知道编译时的编译器路径?
$$OUT_PWDin Qt *.pro 文件扩展为构建应用程序所在目录的路径。 $$PWD 展开到项目目录。是否有类似的宏(或者可能是 hack)提供编译器可执行文件的路径?
【问题讨论】: