我在代码中添加了一些#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的成员”(这是真的,但这就是我将交换机传递给编译器的原因。)