我和这个人有同样的问题。使用 clang 和 ccache 编译时,每次遇到 Q_OBJECT 时都会收到此警告:
warning: explicitly assigning value of variable of type 'int' to itself [-Wself-assign]
这仅在使用 ccache 时发生,单独使用 clang 编译相同的代码可以正常工作。
宏扩展似乎存在类似的问题,建议的解决方案是设置环境变量
CCACHE_CPP2=yes
不幸的是,这似乎不能解决我的问题,或者我做错了。
我努力了:
从命令行构建
CCACHE_CPP2=yes ninja
export CCACHE_CPP2=yes ninja
从 Qt Creator 构建,添加
CCACHE_CPP2
到“构建环境”
我还能做些什么来解决这个宏扩展问题吗?我特别不想在全局(因为这很糟糕)或本地(因为这意味着将所有宏包装在特定于编译器的样板文件中)禁用警告。