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个空格. 另请注意,默认情况下,可执行文件名与项目文件的基名相同.希望这能让你以某种身份前进. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |