我利用静态库A生成静态库B,然后在程序中引用静态库B的时候,如果不将静态库A也一起引用,程序报错,提示找不到静态库A,我的疑问在于:在利用静态库A生成静态库B的时候,不应该已经将A包含到B中了吗?
你好,我构建静态库B的时候,只是简单地引用A。然后,可否推荐一下解析obj文件的工具,以及生成静态库B的时候添加obj文件的方法,不胜感激
追答比如我有这么四个函数,每个文件放一个函数:
int add(int a, int b) { retur a+b; }
int sub(int a, int b) { return add(a, -b); }
int inc(int a) { return add(a, 1); }
int dec(int a) { return sub(a, 1); }
很明显,后两个依赖前两个。
我现在把前两个放进a.lib后两个放进b.lib,这样调用b.lib的地方如果只链接了b.lib,就会出现找不到add和sub函数的情况(因为没有链接a.lib)。
如果把a.lib和b.lib合并在一起,再链接的时候就没有这个问题了
另:好像不用把里面的obj文件拆出来、直接合并lib就可以的样子……
我本想将做成一个组件静态库B,就是希望后面引入静态库B的时候不需要引入之前的A。静态库本身不应该包含链接的全部信息吗?谢谢你的回答