编译依存关系高手请进linux环境
//car.h
#include <stdio.h>
#include <stdlib.h>
class CAR{
private:
int carnum;
public:
void getCarName();
};
//car.cpp
#include "car.h"
void CAR::getCarName(){
printf("toad\n");
printf("toad\n");
carnum=0;
printf(" %d \n",carnum);
}
//main.cpp
#include <stdio.h>
#include <stdlib.h>
#include "car.h"
using namespace std;
int main(){
CAR car1;
car1.getCarName();
return 0;
}
我把car类编译成了一个.so库,按照编译依存关系来说,我改变了car.h中的内容,原先把有int carnum这个值,我重新编译了.so,但是main.cpp没有重新编译啊,按照道理说在main.cpp中我引用的是car对象啊,应该main.cpp也要重要编译才可能正确运行啊,可没有便宜main也能通过,我就奇怪了,那么编译依存说法应该说不通啊,如果是使用动态分配的car我还是可以理解的,使用对象实在理解不了main为什么不用重新编译;