使用导入的 makefile 将 Qt Creator .config 添加到 .h
Posted
技术标签:
【中文标题】使用导入的 makefile 将 Qt Creator .config 添加到 .h【英文标题】:Prepend Qt Creator .config to .h with imported makefile 【发布时间】:2014-12-11 21:06:58 【问题描述】:据我了解,在 Qt Creator 中使用生成的 makefile 开发 C++ 时,.config 文件会透明地添加到每个 .h 文件之前。
假设 .config 文件位于根目录中,我们在根目录下有 src/ 和 inc/ 目录。 .config 文件基本上只是#define
常量的列表。通常不必明确地#include
它。
在自定义(导入)makefile 中模拟这一点的最佳方法是什么,以便 .config 文件不明确包含在每个 .h 中?
感谢您的帮助。
我当前的 src/makefile 的片段:
VALID_TOOLCHAINS := pnacl
NACL_SDK_ROOT ?= $(abspath ../../prg/nacl_sdk/pepper_canary)
include ../common.mk
APP_SOURCES = Common.cc App.cc MoreMath.cc AppGraph.cc AppAudio.cc Noise.cc
TARGET = nim
INC_PATHS = $(NACL_SDK_ROOT)/include ../inc
LIBS = ppapi_gles2 ppapi_cpp ppapi pthread
CFLAGS = -Wall
SOURCES = $(APP_SOURCES) Neonim.cc
# Build rules generated by macros from common.mk:
$(foreach src,$(SOURCES),$(eval $(call COMPILE_RULE,$(src),$(CFLAGS))))
ifeq ($(CONFIG),Release)
$(eval $(call LINK_RULE,$(TARGET)_unstripped,$(SOURCES),$(LIBS),$(DEPS)))
$(eval $(call STRIP_RULE,$(TARGET),$(TARGET)_unstripped))
else
$(eval $(call LINK_RULE,$(TARGET),$(SOURCES),$(LIBS),$(DEPS)))
endif
$(eval $(call NMF_RULE,$(TARGET),))
【问题讨论】:
我不认为我理解这个问题。./
和 ../
也不是一回事。
同意@EtanReisner,澄清你的问题。
你的意思是,“前置 .config”?究竟是什么前置?
【参考方案1】:
无论我们是否使用Qt Creator,在我们处理Qt时通常是qmake生成makefile。 qmake 使用 MyAppProjectFile.pro 文件,其中列出了所有项目文件、编译器和链接器选项、构建前和构建后步骤。从指向 qmake 的链接开始。一旦您了解 Qt 项目的组织方式,您可能会问我们更“详细”的问题,以便我们能够理解并更好地回答。
当我几年前学习 Qt 时,我浏览了 Qt 示例并从命令行编译它们并尝试更改该代码。为构建 Qt 应用程序和示例设置命令行环境将是一个很好的练习。您还可以在 Qt creator 中创建自己的项目,但可以从命令行创建——这真的很容易,并且在使用什么文件等领域有很多启发。
【讨论】:
感谢您考虑周全的回复。这是我关于 SO 的第一个问题,所以我做了很多问题编辑。 我没有使用 qmake,而是为我的 C++ 项目导入了一个我不想被 Qt Creator 编辑的 makefile。 阅读 qmake、jom 和编译器工具。前 2 个是 Qt 的一部分,而 jom 相当于 make。编译器工具可以应用于 Qt 项目,您需要提供一个环境,例如路径,包括 LIBS 变量,例如来自 Visual Studio 的 vcvars32 或 vcvarsall.bat 或通常在 Linux/Unix/Mac OS 上默认配置的默认编译器工具,但您可能需要设置特定的编译器工具。在您了解一些基础知识之前,我们很难真正为您提供帮助。 Qt Creator 默认与 qmake 集成。它使用配置的 qmake 和编译器工具。期间。 它对我来说一直很好 - 有一个 python 脚本可以为我使用的任何平台配置它。我只是不太了解 make 文件,所以想知道如何模拟该 .config 行为。最后,听起来最好将它包含在每个头文件中。无论如何,这样更便携。以上是关于使用导入的 makefile 将 Qt Creator .config 添加到 .h的主要内容,如果未能解决你的问题,请参考以下文章