我创建了静态库A
,该库正在使用另一个静态库B
。
为了在代码A
中使用库C
,我添加了库A
和标题A
,但B
。
因为我知道静态库在编译时被合并,所以库B
已经包含在A
中。
但是当我编译代码C
时,似乎要求我添加库B
也显示未定义的引用错误。
当我同时添加库B时,错误消失。
为什么?
答案 0 :(得分:1)
您需要同时添加A和B.
当静态lib A使用静态lib B时,B绝对不会在A中组合。这是不可能的,因为生成静态库时没有链接步骤。
这是Linux上共享库和静态库之间的区别。
如果您的库编写得很好,您可能不需要在代码C中添加B头,但在链接时,(可执行文件或共享库甚至是Windows中的DLL)您将需要所有使用的静态库。