调试程序-开篇

一直以来对调试程序,总心存芥蒂,无从下手。一方面原因是自己书看的太少,不明白编译器的工作原理。另一方面,从来也不敢尝试,遇到问题总是找不到方向,没有逻辑上的思考能力。

今天把手中存在了快半年的程序(别人的代码),代码没什么问题,主要是版本换了之后,编译的时候总是有些问题。这方面的能力一直欠缺,相信自己一步步的调试,理解,会有进步的。

耗费了一下午的时间,终于把问题解决了。(代码中包含一些常用的静态库,eg,ANN, CHOLMOD库)

现总结如下:

新建自己的VS解决方案之后,加入现有的源文件和头文件后,剩下的就是这些静态库的配置了。

需要注意的是:配置的时候看清楚是在Debug环境下,还是在Release环境下

主要解决两个方面:源程序对头文件和lib文件的依赖性,需要配好。

(1)若头文件配置错误会出现,“无法打开“xyz.h”的出错信息,这时候,需要进入解决方案的属性窗口(配置属性)中,选择VC++目录,进而将头文件所在的位置,放到“包含目录”中。便可解决此类错误。

(2)若出现一大堆linker错误,那就是库的配置出现问题了,这时候,需要进入解决方案的属性窗口(配置属性)中,选择VC++目录,进而将lib文件所在的位置,放到“库目录”中。

如果还没有解决问题,可尝试进入解决方案的属性窗口(链接器属性)中,选择常规,进而到附加依赖项设置中,再次将所有lib文件一一加入到里面,一般便可解决问题。

最后,我调试通过后,出现了栈溢出错误,Stack overflow, 从网上找到了解决问题的方法

进入解决方案的属性窗口(链接器属性)中,选择系统属性,将堆栈保留大小,也就是第五个,后面的空白处输入一个较大的数,例如一千万等,这样便可解决了栈溢出错误。

时间: 2024-10-17 01:39:20

调试程序-开篇的相关文章

Eclipse调试程序及项目的导入导出

Eclipse调试程序 调试概述: ①   调试就是测试程序的方法,主要的目的就是解决程序的逻辑问题,流程是:发现问题.修改问题.正确执行; ②   以前我们可以使用System.out.println()方法来查看我们程序中的问题; ③   现在我们可以使用Eclipse开发工具帮我们进行调试: Eclipse为程序员提供了设置断点的功能来达到单步调试程序的能力; 调试步骤: ①   初步判断程序出错的位置; ②   给指定的程序设置断点(可以设置多个); ③   进入调试视图让程序在断点位置

2016年开篇 - 敏捷与成果经济

Manifesto for Agile Software Development 敏捷软件开发宣言 Individuals and interactions over processes and tools 个体和互动 高于 流程和工具 Working software over comprehensive documentation 工作的软件 高于 详尽的文档 Customer collaboration over contract negotiation 客户合作 高于 合同谈判 Resp

2015黑帽大会开篇:“互联网自由和开放正走向消亡”

2015年黑帽大会于上周三在拉斯维加斯正式拉开帷幕,本次大会新增关注互联网文化中的法律角色极其暗淡前景的话题. 当天开讲人Jennifer Granick,系斯坦福大学社交网络中心公民自由系主任,因其在合法防御黑客方面的建树而知名,以理想主义的口吻开篇. "我一直坚信自由和开放的互联网终将到来.且我一直相信我们需要一个信息可免费获取的世界,"Granick这样说道,"我认为人们可以自由获取tinker--这样的手动命令人们应该能够研究.操控乃至对定义着世界的设备和软件进行反向

Android异步加载全解析之开篇瞎扯淡

Android异步加载 概述 Android异步加载在Android中使用的非常广泛,除了是因为避免在主线程中做网络操作,更是为了避免在显示时由于时间太长而造成ANR,增加显示的流畅性,特别是像ListView.GridView这样的控件,如果getView的时间太长,就会造成非常严重的卡顿,非常影响性能. 本系列将展示在Android中如何进行异步加载操作,并使用ListView来作为演示的对象. 如何下载图像 下载自然是需要使用网络,使用网络就不能在主线程,在主线程就会爆炸.所以我们必须要在

OPC学习开发记录(C#):OPC客户端【开篇】

OPC客户端 1.前言 思前想后,还是写下来实在一点,一来可以对自己的学习开发结果进行总结,二来可以锻炼自己表达能力,如何能够将意思表达清楚.博客园真的没有认真做做记录,也不会排版,丑的一比.关于OPC开发的,从零慢慢开始学习(谁不是呢),从简单的开始,OPC客户端是怎么使用的问题,站在用户(相对)的角度,也是比较简单的一部分,易从这一部分入手.根据网上的源码,我很快就自己开发了一个将就能用的OPC客户端,主要目的还是掌握OPC的结构和用法,为以后OPC服务器开发做铺垫.本篇为记录开篇,新手上路

webService(一)开篇

Webservice技术在web开发中算是一个比较常见技术.这个对于大多数的web开发者,别管是Java程序员还是.NET程序员应该都不是很陌生.今天我就和大家一起来学习一下webservice的基本内容.此篇文章作为webservice的开篇,首先我们来看一下什么是webservice.他能干什么用呢? 什么是webservice Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务. 用简单点的话说,就是系

Html5 Egret游戏开发 成语大挑战(一)开篇

最近接触了Egret白鹭引擎,感觉非常好用,提供了各种各样的开发工具让开发者和设计者更加便捷,并且基于typescript语言开发省去了很多学习成本,对于我们这种掉微软坑许久的童鞋来说,确实很有吸引力,在开发中最浪费时间就是设计和调试的阶段,js的语言过于自由,自由到有时候写错了都不知道,但typescript可以使用开发IDE帮助排错和调试,不得不说确实很有效率,在这之前,我在egret论坛里发了几个小游戏做练手,最近的一个<疯狂猜歌名>在素材齐备的情况下,仅用了不到1天的时间完成了开发,以

[转]MVVM架构~mvc,mvp,mvvm大话开篇

MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示.作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过 Controller. 在MVC里,View是可以直接访问

Xcode调试程序

Xcode调试在iOS程序中主要有两种错误,1)一种是编译错误,编译错误一般情况下在Xcode的程序编写过程中可以被检测出来,以红色标注,并且给出错误原因的提示.2)一种是逻辑错误.而逻辑错误在我们的编码过程中是看不出来的,这些错误可以通过测试和调试找出3)警告 有关警告的内容有的时候会引起程序崩溃,因此需要对警告信息一一排查.4)在Xcode中因为系统错误或者是链接错误暂不在讨论之列. (1)有关XCODE中的调试功能1.普通调试就是在程序中加断点,然后执行单步调试并观察变量的值的过程.断点呢