编程环境:Visual Studio 2010
首先确定是在 Debug 配置状态。
初始解决方案如下:
错误现象:CXX0017: Error: symbol this not found
方法 1:
将编译优化选项设置为"/Od"就可以了。
工程右键 -> Properties -> Configuration Properites -> C/C++ -> Optimization -> Optimization: Disabled(/Od)
注:如果解决,程序可能存在逻辑错误
方法 2:
将VS生成的工程文件全部删除,(Debug目录下的pdb文件),然后全部重新生成
3. 如果未解决,可能是 Visual Studio 2010 自身bug问题。见 MSDN bug report
https://connect.microsoft.com/VisualStudio/feedback/details/613569/cannot-inspect-local-variables-while-debugging-in-vs2010-cxx0017-symbol-not-found-error#details
情况 1.
int _tmain(int argc, _TCHAR* argv[]) { float f = 123.0; //声明并初始化 if(false) { int str1; //if中声明新变量。关键!去掉此处可以解决问题,所以可在 if 外声明 } else { //else中声明的变量在调试时,出问题 int str2; int a = 123; a++; } return 0; }
情况 2. 解决方案 将 k 作为局部变量使用,即for(int k=0;k<2;k++)#include <stdio.h> int main() { int arr[5]; int k; //循环变量,非局部 float f=123; for(k=0;k<2;k++) { arr[k] = 2; int t = 5; printf("%d\n",t); } int i = 2; if(i > 0) //if从句内出现的 新变量,也会出现问题 { int joke; printf("waht\n"); } return 0; }
以上只是已测试的情况,如果类似问题,可参考进行调试
本文档详细介绍了如何解决在Debug配置状态下遇到的CXX0017错误,即编译过程中找不到特定符号的问题。通过分析和调试,提供了解决此问题的初始解决方案。
2925





