私はサードパーティからの絶対に巨大な.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(実際には数千の関数を表すもの)を含むファイルを作成したいと思います。external.hこのように、人々はに含めたりリンクしたりすることなく私のライブラリを含めることができますlibexternal.a。foo実際にはたくさんの関数があるので、手動でリストするつもりはありません。
できますか?
より詳しく
必要な私のシンボルをリストアップしたいと思います。たとえば、foo_wrapperコマンドラインで指定しても問題ありません。fooしかし、コマンドラインやそれが呼び出す関数を指定することもできません。私が指定しても大丈夫な理由は、使用可能にしたいすべての関数を呼び出すだけのfoo_wrapper1つの関数を記述して、そのシンボルをコマンドラインに配置できるからです。callEverything()