gpt4 book ai didi

c++ - 如何将定义添加到 moc_predefs.h?

转载 作者:行者123 更新时间:2023-11-30 04:48:58 24 4
gpt4 key购买 nike

Qt的moc.exe生成文件moc_predefs.h ,包含一些定义,包含在 moc 解析的每个文件中。有没有办法向这些文件添加定义?

我想在这些文件中定义一些包含防护,以防止 moc.exe 解析某些 header (主要是 3rd 方 header ,如 boost)。我可以使用 QMAKE_MOC += -Dfoo 将这些守卫直接定义为 moc 的参数, 但这会不必要地使 makefile 膨胀,将它直接放在 moc_predefs.h 中会更好。文件。

我注意到 pro 文件中定义的标志,例如QMAKE_CXXFLAGS += -Dfoo产品在 moc_predefs.h 中定义.但显然我不想为构建定义 include guards,只是为了 moc...

注意我不想直接修改生成的文件,我正在寻找一种方法来告诉 qmake/moc 向文件添加一些额外的定义。

最佳答案

我没有检查它,但我希望这可能有用:

myproject.pro

...
# add this to the end of file
QMAKE_CXXFLAGS += -Dfoo
load(moc)
QMAKE_CXXFLAGS -= -Dfoo
CONFIG -= moc

I'm looking for a way to tell qmake / moc to add some extra defines to the files.

问题是 moc_predefs.h 是由 C 预处理器生成的(例如 g++ -E -dM $$QMAKE_CXXFLAGS ...),而不是由 moc 本身(在后一种情况下 QMAKE_MOC_OPTIONS 就可以了)。所以 QMAKE_CXXFLAGS 是这里唯一相关的变量。

关于c++ - 如何将定义添加到 moc_predefs.h?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55596480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com