Clion在切换电脑时找不到CMakeLists.txt文件

8
我在使用Clion(1.0.1)和CMakeLists.txt时遇到了问题。
我使用GitHub来管理我的项目,并直接从IDE中提交它们。如果我在不同的计算机上检出该项目,则IDE会在原始PC目录中查找CMakeLists.txt文件。
Clion报告的具体错误消息如下:
Error: CmakeLists.txt not found in C:\Users\Chris\ClionProjects\SDLTestClion

然而,这是一台Linux机器,所以显然没有C驱动器。
我尝试过以下方法:
- 文件 > 无效的缓存/重启 - 更改项目根目录(从CMake窗口中;显而易见的解决方案) - 文件 > 设置 > 构建、执行、部署 > CMake - 这里没有任何设置或变量指示上层目录。
我找不到其他方法,所以要么我漏掉了什么,要么在版本1.0.1中存在问题,需要搜索项目文件以更改Clion查找CMakeLists.txt文件路径。
1个回答

9
更新:8年前写了这个答案,当时不知道自己在做什么。我偶尔看到它获得赞同,所以我要更新一下。
很可能你是一个新的git或版本控制用户,或者只是一个新的开发者。正确的解决方案是首先不要提交CLion的项目文件,但既然你已经在这里了,那你可能已经这样做了。以下是你应该解决这个问题并防止将来发生类似情况的方法:
1. 关闭CLion。如果尚未完成,请在项目的根目录中放置一个名为.gitignore的空文本文件。 2. 在文件中添加.idea作为一行,以忽略它。大多数情况下,这就是您需要做的,但我建议花点时间确保您不会提交其他不应该提交的文件(例如*.iml*.iws*.o等)。请参考示例.gitignore文件hereherehere。 3. 如果这是一个共享项目,值得确保没有其他IDE项目文件也被提交(如Eclipse、Visual Studio等)。对于Visual Studio来说,有时您实际上希望根据项目提交这些文件。请参考here获取另一个示例忽略文件。然而,对于学生项目来说,这种情况不太可能发生。 4. 运行git add .gitignoregit commit -m 'Updated .gitignore to exclude .idea directory'。 5. 使用git rm --cached -r ./.idea删除已经提交的.idea目录。如果您有多个要从版本控制中删除的内容,请运行git rm --cached -r .。 6. 运行git add .git commit -m 'Removed items added to .gitignore'。使用git push将更改推送到远程git仓库。 7. 在文件浏览器中导航到项目的目录,并删除.idea目录。 8. 在CLion中重新导入项目,.idea目录将被重建。 9. 请记住,您可以在任何未来的项目中重复使用此.gitignore文件。如果是相同的语言和IDE,通常只需复制/粘贴即可。

旧回答:

好的,我找到了问题所在。据我所知,在版本1.0.1中,通过IDE无法解决这个问题。

解决方法:

  • 进入 项目目录/.idea
  • 打开 misc.xml
  • 编辑字段 PROJECT_DIR,使其指向该项目的 CMakeLists.txt 所在的目录。

我认为这是一个 bug,当选择一个新的项目根目录时,应该更新这个字段。一个临时的解决办法可能是将 misc.xml 添加到 .gitignore 中,但我没有测试过,不知道是否会引起其他问题,或者 IDE 是否会自动重新生成这个文件。


你为什么要首先将这些文件放入版本控制中呢?CLion不应该能够仅从原始的CMakeLists.txt文件中重新创建它们吗? - ComicSansMS
Clion自动生成.gitignore文件。理论上,由于我是在IDE中创建git仓库的,.gitignore应该已经排除了不必要的项目文件,但显然并没有。换句话说,我没有直接将它们纳入版本控制,它们可能应该被IDE自动排除。 - Christopher Schneider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接