Qt moc如何处理#ifdef?

时间:2016-03-06 10:21:35

标签: c++ qt cmake qt5 moc

我在代码中添加了一些#ifdef部分。现在省略了想要的部分,但是 从生成的moc文件到省略的成员,只有从那里引用。可能会发生这种情况我需要以特殊方式使用#infdef-s,还是根本不使用? (我也做了一个干净的构建)

可能是Does Qt's moc Preprocessor Need All C++ Preprocessor Flags中发生的事情 如何从CMake构建中将条件传递给moc? (我使用#cmakedefine

我试图使用

if(My_MODE)
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMy_MODE")
endif(My_MODE)

但它曾经导致非moc文件的警告,My_MODE被重新定义(好的,我可以删除#cmakedefine),其次是在编译我收到的moc文件时(而不是链接)错误)在源文件中找到“没有名为X的成员”(这是真的,但这就是我将交换机传递给编译器的原因。)

0 个答案:

没有答案