|
发表于 2007-10-25 22:06:39
|
显示全部楼层
如果不想让 g++ 的 linker 出现奇怪的 undefined reference 错误, 在编排库文件的顺序时最好遵循"[color="Red"]先引用, 后定义"的原则.
看你给出的输出, 很可能在 库H264AVCEncoder 中使用了 库H264AVCCommon 中定义的类CabacContextModel2DBuffer , 所以 H264AVCCommon 应该在 H264AVCEncoder 之后出现 (正如你在第一种修改中所做).
[color="Red"]简单的说就是: 越基础的库, 越往后面写.
另外, 由于 CabacContextModel2DBuffer 类的其它方法都在头文件中给出了inline定义, 这些方法(函数)直接被编译进了引用它们的目标文件中, 不会存在 undefined 的问题. |
|