说我有一个libmy.a静态库,我想知道它动态链接的是什么库。实际上,我需要以下内容:我要创建一个新的动态lib,例如libmy2.so,它将链接一个.o文件(目标文件)和libmy.a。因此,我想知道哪些库最终将加载libmy2.so。
最佳答案
静态库不链接其他静态或动态库。
好的,假设有两个C++文件,a.cpp和b.cpp。
g++ -c a.cpp -o a.o // compile a.cpp to a.o
rm -f lib1.a // no existing lib1.a (this is not essential)
ar rvs lib1.a a.o // create library lib1.a and add a.o to it
g++ -c b.cpp -o b.o // compile b.cpp to b.o
ar rvs lib1.a b.o // ad b.o to existing lib1.a
显然,您可以在各个阶段之间进行任何数量的复制,以生成具有所需名称的库。你也可以
ar --help
获得可以稍微简化过程的ar选项。坦白说,这是我几乎从不使用的命令,只是从对象列表中构建静态库。