编译notcurses项目时位运算符与布尔操作数混用错误的解决咨询
解决notcurses头文件触发的-Wbitwise-instead-of-logical编译错误
不用重装MacOS!这完全是编译器警告规则和notcurses代码设计的兼容性问题,系统本身没毛病。
具体解决办法
因为notcurses里的位或操作是有意为之(用来给编译器留优化空间),我们只需要局部禁用这个特定警告,不用动-Werror、-Wall这些全局参数,也不用改notcurses的头文件:
方法1:代码里局部控制警告
在你引入notcurses头文件的位置,加上编译器的诊断指令:
#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wbitwise-instead-of-logical" #include <notcurses/notcurses.h> #pragma GCC diagnostic pop
这样只有处理notcurses头文件时会跳过这个警告,你自己的代码依然会受到-Werror等严格检查。
方法2:编译命令里添加豁免参数
如果是在Makefile或者编译命令里处理,直接追加-Wno-bitwise-instead-of-logical即可:
gcc your_source.c -o your_program $(pkg-config --cflags --libs notcurses) -Wno-bitwise-instead-of-logical
这种方式是全局放宽该警告,不如方法1精准,但胜在操作简单。
内容的提问来源于stack exchange,提问作者RoGKôT
相关产品推荐
相关产品推荐

