很抱歉措辞令人困惑。
基本上我想创建一个libone.a
需要链接另一个静态库()的静态库(libtwo.a
)。libone.a
并且 都通过执行以下libtwo.a
操作静态链接到另一个程序(我们称之为):program
$(CC) -o program something.o anotherthing.o -L/path/to/lib -lone -ltwo
每当program
调用其中的方法时libtwo.a
,都应该转到libtwo.a
加载了program
. 但是每当program
调用一个libone.a
调用方法的方法时libtwo.a
,它应该调用在创建libtwo.a
时嵌入的方法。libone.a
是的,我知道这会通过加载两个相同的库来增加文件大小,但我可以接受。
我尝试这样做的原因是因为program
我使用的是 OpenSSL(在这种情况下libcrypto.a
)并且我的静态库也在使用libcrypto
. 但是我在我的库中有一个要求 OpenSSL 是 FIPS 有效的(即FIPS_mode_set(1)
),但这样做会破坏program
。总之我想把OpenSSL的库用到。本地调用的program
应该使用它自己的,而我的库调用的应该使用我链接的并且是 FIPS 有效的。
这可能吗?