标签:vs编译错误
问题1:unsigned大多数编译器都会认为是unsigned int,是否意味着我们可以进行缩写,编码的成本在哪里,还是调试的成本最重要,和可读性。
问题2:fatalerror LNK1112: 模块计算机类型“MIPS”与目标计算机类型“THUMB”冲突
参考:http://www.jb51.net/softjc/83192.html
解决方案:请选择与解决方案相同的编译平台。
问题3:太多的警告信息妨碍错误信息的查看
解决方案:点击视图->其他窗口->错误列表
问题4:调试的过程中出现调用汇编代码,如何查看源代码
解决方案:查看调用堆栈,双击,查看当前调用汇编的代码是那个函数产生的,也可以鼠标右键点击选择查看源代码(前提是必须源代码,调用的库提供的只是dll,没有源码)
问题5:CXX0017: 错误: 没有找到符号test1d.dll test2d.dll
解决方案:由于解决方案中有些模块提供的是release版本的dll,所以无法将整个工程置于debug模式,从debug调试出错的信息中最后的d代表的是debug调试版本的dll。所以
必须在解决方案配置中选择release
问题6:项目源码非常多,如果修改一个文件代码选择重新生成解决方案大概需要花费15分钟的时间,目前没有测试过生成解决方案是否可以减少编译和链接的时间?
解决方案:修改某个文件之后不需要重新生成解决方案,然后直接开始执行调试,自动将修改的文件重新编译。
问题7:error LNK2001: 无法解析的外部符号 "public: virtual class CTest::TCodeEntry const * __thiscall CTest::CTestImpl::GetItemByCode(unsignedint)" (?GetItemByCode@CTest@CTestImpl @@UAEPBVTCodeEntry@2@I@Z) testimpl.obj
解决方案:遇到这个问题,表示在链接的过程中,没有找到真正的实现,通过半小时的查阅代码发现如下的问题:
引用class A
在函数Func(A a)中进行了调用,在实际的过程中,A被定义为了struct结构体类,这个时候链接的过程中,就没有办法找到class A,这一点应该注意。
在实际的过程中,务必注意真正的实现和声明是否一致,这个非常重要。
问题8:error C2259TestQuery::CtestQueryImpl :can not instantiate abstract calss
解决方案:首先了解虚基类作为接口,所有的纯虚函数必须在子类中实现,否则编译出错,然后查看当前的编译错误提示,说明目前的虚基类无法实例化,说明有纯虚函数没有实现,通过半个小时的代码查阅,发现是子类的函数声明和基类的函数声明参数列表不一致,说明在拷贝代码的过程中出现错误,或者修改代码,但是基类代码没有同步
标签:vs编译错误
原文地址:http://linuxstorm.blog.51cto.com/5218690/1637984