时间 : 16-04-23 栏目 : 根目录 作者 : eekuang 评论 : 0 点击 : 3,969 次
当使用make对c++进行编译时,我们有时候会发现出现莫名其妙的错误,而找不到原因。也有可能编译通过了,但是运行出错。这里,主要说下c++在编译过程中文件是如何更新的。使用到的源码文件有三个:test.cpp,calc.cpp,calc.h。
当cpp文件中新增或者修改函数时,头文件中对应的函数名会重新检查,但是不会修改h文件中其它函数的定义。比如说,修改cpp文件中的add函数,则系统会检查h文件中add函数的配置。但是如果此时h文件中的camera函数也修改了,则实际运行时仍然为旧版的camera函数。当仅仅修改h文件,而cpp文件没有修改时,则无法重新make,因为检测到cpp文件无修改,不需要重新编译链接。
附:
test.cpp:
int main(int argc ,char* argv[])
{
Camera *camera=new Camera();
cout<<camera->getFaceTime()<<endl;
cout<<camera->add()<<endl;
return 0;
}
calc.h:
class Camera
{
private:
public:
int _iFaceTime;
int getFaceTime();
Camera(){
_iFaceTime=10;
}
int add();
};
calc.cpp:
using namespace std;
int Camera::getFaceTime()
{
return ++this->_iFaceTime;
}
int Camera::add()
{
return 0;
}
除非注明,文章均为( eekuang )原创,转载请保留链接: http://www.14en.com/?p=168