2

很抱歉措辞令人困惑。

基本上我想创建一个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 有效的。

这可能吗?

4

1 回答 1

1

这可能吗?

不,这根本不能用归档库来完成(它可以用共享库来完成,但需要非常小心以避免符号冲突)。

于 2013-08-01T04:12:51.533 回答