2

我正在 Visual Studio 2008 中开发一个相当大的(我认为 - 32 个项目很大吗?)多项目“解决方案”。因为它是一个遗留系统,代码主要是 C <gasp!>,虽然我没有认为这与我的问题密切相关。

最近(但我不确定最近多久),我注意到我的浏览信息 - 允许一个宏、函数、变量等的“转到定义”和“转到声明”的 VS 工具-没有被更新。我会在某事上尝试“转到定义”,IDE 会告诉我“符号 '' 未定义”,或者,如果它是我移动的东西,将转到正确的文件但错误点。

我尝试为解决方案中的所有项目构建浏览信息,但这没有帮助。然后我在MSDN上读到我应该这样做,而是应该在构建所有项目之后,以所有 .sbr 文件作为输入运行 BSCMAKE。(我相信,但不确定,.sbr 文件是在编译文件时自动生成的。)

我猜是这一步(使用所有 .sbr 文件运行 BSCMAKE)没有发生,但我不知道在哪里可以找到控制整个解决方案的设置(如果有的话)(而不是一次一个项目)。

VS 是否有其他文件(除了 .bsc)可以从中获取这些信息?(换句话说,我是不是完全找错了树)?

4

2 回答 2

4

您是否尝试过删除位于解决方案文件 (.sln) 旁边的 IntelliSense 文件 (.ncb)?因为,.ncb 文件可能已损坏。您可以在此处阅读有关此问题的更多信息

大多数情况下,当您收到“未定义符号”时,是因为源文件缺少#include。确保它存在并且您可以打开它。

此外,定义和宏可能会弄乱 IntelliSense。最近你的代码有什么变化吗?

据我了解,没有设置可以激活 BSCMAKE。编译完成后需要调用该命令。

于 2009-12-03T13:13:07.313 回答
1

由于您是从 VS2005 迁移项目,并且 .ncb 文件包含有关项目中各种变量的信息,因此我建议您尝试删除 .ncb 文件,然后在 VS2008 或 VS2010 中重建项目。

在上面尝试之后,如果没有修复,也试试这个。

我们可以定义以下格式的函数。

类型:1

func(int i, char c)

{
.....
....
.....
}

类型:2

func(i, char c)

int i;

char c;

{
.....
....
.....
}

如果您定义类型 2,然后按可变 F12 键(转到减速),它将不起作用。请像类型 1 一样更改,然后尝试。它会正常工作。

于 2014-02-06T11:33:51.300 回答