问题描述
使用CodeLite创建Gtkmm C++项目,默认生成的代码头文件有语法检查错误,可以正常编译通过。
语法检查报错为:Unknown type name ‘namespace’。
PS:界面最下方状态栏显示 clangd 语言服务运行之后语法检查报错出现。
解决
CodeLite本来就小众,用它开发Gtk的人可能更少了吧(Gtk有其他好用的IDE吗?Code:Blocks?)。
但是CodeLite用的真的很舒服,官方更新也快,界面也不老套,不想放弃。于是bing了半天,发现问题了(其实是搜索语法检查报错找到的。clangd比较大众,这个是clangd的锅)。原来clangd根据文件扩展名判断语言,*.h文件被认为是c语言源文件。(汗!)
解决方法:改工程中的头文件(就是你会打开编辑的头文件,CodeLite只对打开的文件进行语法检查)扩展名为hpp。
参考:https://stackoverflow.com/questions/13602249/how-to-fix-error-unknown-type-name-namespace