gpt4 book ai didi

visual-studio-2010 - "Go to Definition"/"Go to Declaration"在 VS2010 中无法可靠运行?

转载 作者:行者123 更新时间:2023-12-04 21:22:16 25 4
gpt4 key购买 nike

我最近想开始为一个开源 C++ 项目做贡献。由于对 C++ 的经验很少,我选择了 Visual Studio 作为 IDE,并使用 SP1 进行了更新。我得到了相对容易构建的解决方案,并且想稍微浏览一下代码以获得概览。

这是我注意到有时“转到定义”/“转到声明”不起作用的时候。当我右键单击源代码中的符号时,这两个选项都可用,但是当我在头文件中时,“转到定义”只会让我再次进入那些相关函数的声明。当我在 .cc 文件中时,我总是被带到同一个文件中的定义。

关于与此相关的功能,我注意到的其他一些事情是:

1)对于某些功能,我可以从头文件导航到定义,但是另一个方向被破坏了

2) 如果将声明更改为完全匹配定义,则可以修复某些功能的导航,例如

header declaration:
void buche(sint64 betrag, player_cost type);
source definition:
void karte_t::buche(sint64 const betrag, player_cost const type)

改成
header declaration:
void buche(sint64 const betrag, player_cost const type);

-> 导航双向工作

3)当点击源文件中相关函数的代码块时,顶部的范围菜单变为“(全局范围)”而不是显示右侧的小箭头(这是前向声明的符号 I认为?)和类名(但这些函数绝对是类成员)

我搜索了很多,这似乎是一个相对知名的问题。网站上有一个帖子: How to get IntelliSense to reliably work in Visual Studio 2008

我还在微软论坛上找到了几个线程(我无法链接,因为我只能发布两个超链接),但没有官方确认错误或其他东西。

我发现的答复的精髓是应该删除 .ncb 文件(据我了解,该文件已被 VS2010 中的 .sdf 数据库取代),或者使用选项在加载解决方案时重建数据库。我做了很多次,但无济于事。 Stackoverflow 上该线程上评分最高的回复似乎暗示这只是一个错误(Intellisense 的 - 我是否理解正确,它是这个自动完成组件也负责代码导航?)必须接受,建议使用 Visual Assist取而代之的是,当时的问题是关于 VS2008 的,一个回复指出 VS2010 在这方面有所改进。另一个回复归咎于递归引用,但我认为这在这个项目中不是问题,因为所有文件(当然是我检查过并遇到问题的少数文件)都包含保护。该项目的一位编码员也向我证实,他也有同样的问题。但我并不是那么热衷于在 Visual Assist 上花钱,它只是为了一个小爱好......

拥有丰富的 Eclipse/Java 经验,对我来说,这样一个相对重要的 IDE 特性不能可靠地工作对我来说似乎很奇怪。当然我可以理解,静态代码分析对于 C++ 来说比对于 Java 来说要困难得多。但话又说回来,Visual Studio 是一个商业产品,它有很多开发周期。

所以总结这篇文章,这是一个不可避免的错误吗?

最佳答案

我猜这取决于你认为不可避免的事情。

根据我的经验,Intellisense 问题似乎主要是由模板、宏或两者引起的。

Intellisense 使用的解析器/预处理器似乎与编译器的工作方式不同,在某些情况下,它可能会丢失信息并做出错误的假设。

如果您正在编码并且突然发现 Intellisense 已损坏,并且您刚刚添加了一个相当复杂的模板类(一个使用其他模板类的模板类,或者您使用另一个模板类实例化,或者任何奇怪的东西),或者一个宏 (再次,尤其是复杂的),您通常可以假设这是导致它的原因。
通常,通过重新排列代码、稍微简化代码或只是随机更改它,您将能够恢复 Intellisense(通常仅在您删除 .sdf 文件之后)。

这相当不方便,但如果是图书馆破坏了它,那就更糟了。尤其是一些 Boost 库,往往会经常破坏它。在这些情况下,很难避免。

无论如何,Intellisense 正在稳步改进。 VS2010 比 VS2008 更准确、更稳定,而且 VS2012 似乎也比 VS2010 好(虽然我还没有使用太多)。

事实上,如果您对 VS2010 没有任何特殊依赖,您可能只想更新到 VS2012。

关于visual-studio-2010 - "Go to Definition"/"Go to Declaration"在 VS2010 中无法可靠运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10237744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com