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有效的
这可能吗
这可能吗
不,这不能用归档库来完成(可以用共享库来完成,但需要非常小心以避免符号冲突)