c++ - Eclipse-CDT - bool、true 和 false 无法解析
问题描述
Eclipse 突出显示 bool、true 和 false,因为无法解析。请注意,应用程序构建良好。如何解决这个问题?
我的设置
Eclipse 版本 2021-06 (4.20.0) 内部版本 20210612-2011
gcc 版本 4.8.5
我试过的
我发现帖子说要更改以下内容:
第一的
Properties -> C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Dialect to -std=c++14 或其他。
我在属性编辑器中找不到此选项
其次选择 Window->Properties -> C/C++ General -> Preprocessor Include Paths, Marcos etc. -> Providers Tab
我这样做并添加了 -std=c99
没有效果,或者可能是错误的标准?
解决方案
我认为这里发生的是 Eclipse 提供的 linting 版本与用于构建程序的版本不同。将 makefile 的属性与 Eclipse 同步。
您可以在 中找到构建属性Project -> Properties -> Build Settings
。确保构建命令、标志、C 方言等与 makefile 中的相同。查看 makefile 的 CFLAGS 变量,它会显示属性,例如 C 标准、优化(对于调试模式,请确保没有,无论 makefile 说什么都使用 -g,因为它可能是用于发布的。)然后选择Eclipse 中的相同选项。
最有可能的是,makefile 中的 C 标准是 C99,但在 Eclipse 中,它是 C89 或类似的东西,在这种情况下,只需修改标准即可。
如果 makefile 使用 g++ 但是纯 C,则项目要么使用一点 C++,因此将项目移植到 C++ 项目。如果它是纯 C 但使用 g++,您还必须将其设为 C++ 项目并处理生活,或者如果您觉得有足够的能力更改 makefile,请这样做并使用 gcc。这个问题是最有可能的。
我什至不完全理解 Eclipse 构建的工作原理,这就是我迁移到 Visual Studio Code 的原因,这可能存在一些问题,请随时通过评论要求澄清。并确保您#include <stdbool.h>
在每个使用布尔值的文件上都有。
推荐阅读
- javascript - PhpStorm 抱怨向数组添加键值
- react-native - React Native:在数组中插入新对象
- web-applications - 单个 Web 应用程序还是桌面和移动应用程序的组合?
- python - 你能帮我用硒点击“去结帐”按钮吗
- jenkins - 如何在 Jenkins 的 Windows 批处理命令中设置和获取环境变量?
- javascript - typescript 如何在 html 脚本标签中获取类型
- django-rest-framework - Django Q 不能使用字符串和 DRF
- css - 使用 Bootstrap 4.4、Wordpress 和 Bootstrap Shortcodes Ultimate 插件的 Flexbox 列等高
- javascript - Fullpage.js 将手动滚动到最近的部分
- javascript - 如何导入 vue js 组件?