用惯了IDE开发工具,最头疼的可能就是出现链接错误(link error),因为链接错误不像编译错误那样能够指定出程序的具体出错位置(编译错误主要是语法错误),编译主要就是将一个编译单元(.cpp(.c)文件与它相应的头文件)链接成一个.obj文件,链接错误主要就是重复定义变量等;
声明和定义的区别:
函数或变量在声明时,并没有给它实际的物理内存空间,它有时候可以保证你的程序编译通过, 但是当函数或变量定义的时候,它就在内存中有了实际的物理空间,如果你在编译模块中引用的外部变量没有在整个工程中任何一个地方定义的话, 那么即使它在编译时可以通过,在连接时也会报错,因为程序在内存中找不到这个变量!你也可以这样理解, 对同一个变量或函数的声明可以有多次,而定义只能有一次
我们在调试程序的时候,如果被调函数没有事先声明的话,会出现undeclare symbol之类的错误了;