【发布时间】:2021-07-06 18:06:40
【问题描述】:
前言;我正在从事一个大学游戏项目,除了意味着我的部分资源我无法分享之外,应该对我的问题没有任何影响。下面显示的代码已删除(明显的)无用信息。
这个问题在Play.cpp 文件中最为普遍:
#include "Play.h"
#include "../Engine.h"
#include "../TileManager.h"
#include "Scene.h"
Play::Play(Engine *engine) :
Scene(engine),
tm(TileManager()) {}
CLion 没有为tm(TileManager()) 行显示任何语法高亮显示,也没有提供任何代码完成,也没有任何自动导入。
Play.h:
#pragma once
#include "../framework/header.h"
#include "Scene.h"
#include "../TileManager.h"
class Play : public Scene {
public:
Play(Engine *engine);
private:
TileManager tm;
};
还有Scene.h(循环依赖于Engine,因为它管理场景):
#pragma once
class Engine;
struct Scene {
explicit Scene(Engine *engine) : engine(engine) {}
protected:
Engine *engine;
};
在Play.cpp 中对tm. 的任何完成请求都会导致:
没有对 TileManager 成员的建议
我希望 TileManager 中的公共方法列表而不是这个。
有人对为什么会发生这种情况有任何见解吗?在我的限制允许的范围内,我很乐意提供更多代码。
CLion 版本 2020.3
【问题讨论】:
-
尝试使缓存失效并重新启动,删除 CMake 构建目录并重新加载 CMake 项目。
-
如果这行得通,我会很高兴的。至少它会很简单:(遗憾的是它没有改变任何东西。
-
您是否配置了工具链 (jetbrains.com/help/clion/…)?你能检查一下吗?另外,它是一个 CMake 项目吗?你能在 CLion 中成功地重新加载它(没有错误)吗?
-
我的工具链被配置为使用比支持的更新的 cmake,它现在可以工作了。谢谢。
标签: c++ syntax-highlighting clion code-completion