如何避免为 QT pro 文件中的子目录创建 Makefile

发布于 2024-10-02 09:26:10 字数 293 浏览 2 评论 0 原文

在编译我的程序之前,我需要编译一个第三方库,但它不是用QT编写的,它有一个Makefile来构建自己。所以如果我写一个这样的 pro 文件:

TEMPLATE = subdirs
SUBDIRS += image myapp

(image 目录是第 3 方库)

然后 qmake,make
它总是报告“找不到文件:image.pro”
如果我在映像中写入 pro 文件,它将创建一个 Makefile,该文件将覆盖原始 Makefile。

有什么建议吗?

提前致谢

Before compile my program ,I need to compile a 3rd party library,but it is not writen in QT ,it has a Makefile to build itself . so if I write a pro file like this:

TEMPLATE = subdirs
SUBDIRS += image myapp

(image directory is the 3rd party library)

then qmake,make
it always report "Cannot find file: image.pro"
if I write a pro file inside image, it will create a Makefile which will overwrite the original Makefile.

any suggestions?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

成熟的代价 2024-10-09 09:26:10

您可以尝试几种方法,具体取决于您想要的内容:

  1. 使用 QMAKE_MAKEFILE 重命名 qmake 生成的 makefile,这样就不会覆盖另一个文件。
  2. 做一些奇特的事情来创建类似 QMAKE_PRE_BUILD 之类的东西(这个变量在 qmake 中存在):

    makefile.target = Makefile
    makefile.depends += 预构建
    预构建.目标 = 预构建
    预构建.depends = FORCE
    prebuild.commands = @echo 在构建之前(替换)
    QMAKE_EXTRA_TARGETS += makefile
    QMAKE_EXTRA_TARGETS += prebuild

来源: http://forum.qtfr.org/viewtopic.php?id =10686(阅读第二篇和第三篇(谷歌翻译)并记住“défaut”意味着缺陷被翻译为默认值:))

这些应该能够解决您遇到的问题。

You could try several things, depending on what you want:

  1. Use QMAKE_MAKEFILE to rename the qmake-generated makefile so that is won't overwrite the other one.
  2. do some fancy stuff to create something like a QMAKE_PRE_BUILD sort of thing (this variable does not exist in qmake):

    makefile.target = Makefile
    makefile.depends += prebuild
    prebuild.target = prebuild
    prebuild.depends = FORCE
    prebuild.commands = @echo before build (to replace)
    QMAKE_EXTRA_TARGETS += makefile
    QMAKE_EXTRA_TARGETS += prebuild

Source: http://forum.qtfr.org/viewtopic.php?id=10686 (read post two and three (google translate) and keep in mind that "défaut" wich means defect gets translated as default :) )

These should be able to solve the problem you're having.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文