加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 修改qmake文件以构建多个目标以与’#IFDEF宏’一起使用

发布时间:2020-12-16 07:28:19 所属栏目:百科 来源:网络整理
导读:我想修改我的Qt项目的qmake文件,以便它构建我的程序的两个版本:一个是定义了SOME_FLAG而另一个是不定义的.根据#ifdef SOME_FLAG的结果,我的代码行为会有所不同. 这可能吗? 解决方法 据我所知,qmake只允许一个TARGET,但有一个例外.也就是说,如果要构建调试
我想修改我的Qt项目的qmake文件,以便它构建我的程序的两个版本:一个是定义了SOME_FLAG而另一个是不定义的.根据#ifdef SOME_FLAG的结果,我的代码行为会有所不同.

这可能吗?

解决方法

据我所知,qmake只允许一个TARGET,但有一个例外.也就是说,如果要构建调试版本和发布版本,可以使用相同的项目文件构建它们.这样,您还可以单独为每个构建指定DEFINES.请记住,您可以使用strip命令在事后删除调试,这可能适用于您的情况. Qt4 HTML文档(查看它们是否安装在您的系统上)描述了qmake-common-projects.html中的debug_and_release模式.

现在说,你被允许多个项目文件.为每个可执行文件创建一个项目,每个项目都有所需的DEFINES.使用qmake -o标志为每个目标发出单独的Makefile,并使用一个Makefile绑定它们.无法帮助你使用QtCreator,因为我不使用它,但这可以在命令行上运行.说明此方案的示例Makefile看起来像这样:

all: Makefile_A Makefile_B
        $(MAKE) -f Makefile_A
        $(MAKE) -f Makefile_B

Makefile_A: withSomeFlag.pro
        qmake -o $@ $<

Makefile_B: withoutSomeFlag.pro
        qmake -o $@ $<

这只是一个完成工作的快速文件,Makefiles中的某个人可能会使它更通用.注意:Makefile缩进是单个TAB字符,而不是8个空格.

另请注意,默认情况下,可执行文件名与项目文件的基名相同.希望这能让你以某种身份前进.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读