在SUSE下编程,eclipse3.2中编写C++,使用GCC/ICC编译器。
1,开始建立了一个静态库a.o,有a1,a2,a3....等函数;
2,然后再建立一个静态库b.o,b.o中要使用a.o中的某些函数,b.o中的函数是b1,b2,b3....等;
3,最后,在自己的工程MY中,使用了b.o中的函数,而没有使用a.o中的函数,在连接时,会找不到a.o,从而出错,(在工程的属性中,也加入了a库和它的路径)
4,这时,如果,在MY中,随便使用一个a.o中函数,比如a1,其它和步骤3完全一致,那么编译连接都正常。
是b库对a库的依赖问题,链接时应该把a库放在b库后面,类似于 gcc -o my.o b.o a.o或者gcc -o my.o -lb -la
试验后,问题解决,两种情况,一是按顺序加入库,要么在自己的代码中使用了被依赖库中的函数,都不会有问题。