对于令人困惑的措辞感到抱歉。
基本上我想创建一个需要链接另一个静态库(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有效的。
这可能吗?
答案 0 :(得分:1)
这可能吗?
不,这根本不能用归档库完成(可以使用共享库完成,但需要非常小心以避免符号冲突)。