我有来自第三方的一组绝对庞大的.a文件.我有自己的库,只从这组库中调用5或6个函数.我想生成一个小得多的.a文件,其中包含我的代码及其(少量)依赖项在外部库中.
具体来说:
是)我有的
> external.h
int foo();
int bar();
> libexternal.a
0000000000000000 T foo()
0000000000000010 T bar()
> mylibrary.c
#include "external.h"
int foo_wrapper() { return foo(); }
> mylibrary.h
int foo_wrapper();
我想要的是
我想创建一个文件libmylibrary.a,它包含foo_wrapper的符号,它的依赖关系foo,以及foo内部调用的任何东西,但不是bar(实际上代表数千个函数).这样,人们可以包含我的库,而不必在libexternal.a中包含external.h或link.我不愿意手动列出foo,因为实际上有很多功能.
可以吗?
更多详情
我愿意列出我需要的符号.所以例如,我可以在命令行上指定foo_wrapper.但是我也不能在命令行上指定foo,以及它调用的任何函数.我可以指定foo_wrapper的原因是它允许我编写一个名为callEverything()的函数,该函数只调用我想要提供的所有函数,然后将该符号放在命令行上.
最佳答案
原文链接:https://www.f2er.com/linux/440735.html