Gcc 如何创建一个与另一个库链接的静态库,并且可以由链接这两个库的第三个程序使用?

Gcc 如何创建一个与另一个库链接的静态库,并且可以由链接这两个库的第三个程序使用?,gcc,linker,openssl,static-libraries,fips,Gcc,Linker,Openssl,Static Libraries,Fips,很抱歉措辞混乱 基本上我想创建一个静态库(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中的方法时,它都应该转到加载了program的libtwo.a。但是每当program调用libone.a中调

很抱歉措辞混乱

基本上我想创建一个静态库(
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
中的方法时,它都应该转到加载了
program
libtwo.a
。但是每当
program
调用
libone.a
中调用
libtwo.a
中方法的方法时,它应该调用
libtwo.a
中嵌入的
libtwo.a
。是的,我知道这会通过加载两个相同的库来扩大文件大小,但我同意

我之所以尝试这样做,是因为我的
程序使用的是OpenSSL(在本例中为
libcrypto.a
),而我的静态库也使用的是
libcrypto
。但是,我的库中要求OpenSSL必须是FIPS有效的(即
FIPS\u mode\u set(1)
),但这样做会破坏
程序。简言之,我想使用OpenSSL库。由
程序
本机调用的应该使用自己的,由我的库调用的应该使用我链接的并且是FIPS有效的

这可能吗

这可能吗

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