如何在qmake项目中向moc添加特定标志?

F'x*_*F'x 8 qt qmake moc

我使用qmake && make以下project.pro文件编译Qt可执行文件:

INCLUDEPATH *= ../../dependencies/boost
QT *= opengl xml
CONFIG *= qt opengl static

TARGET = myexe
HEADERS = Viewer.hpp MainWindow.hpp Inspector.hpp
SOURCES = main.cpp Viewer.cpp MainWindow.cpp Inspector.cpp
Run Code Online (Sandbox Code Playgroud)

但是,在编译时,moc会对无法解析的boost宏进行扼流.要解决这个bug,我需要将标志传递-DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED给moc,但我无法设法这样做.

如何编辑我的.pro文件以传递给定的标志moc?(但不是g++,QMAKE_CXXFLAGS如此)

Tat*_*ela 10

有点hackish,但如果你覆盖moc编译器,以便它包含标志,那该怎么办呢.在.pro中:

QMAKE_MOC = $$QMAKE_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED
Run Code Online (Sandbox Code Playgroud)

  • 似乎不适用于QT5 .. =((任何建议? (2认同)
  • 更好的解决方案,QMAKE_MOC_OPTIONS + = -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED (2认同)