假设我们有一个名为"my_app"的主要可执行文件,它使用了其他几个库:3个库是静态链接的,其他3个是动态链接的.它们应该以哪种顺序与"my_app"相关联?
但这些顺序应该以哪种顺序联系起来?
假设我们得到了依赖于libSB的libSA(如在静态A中),以及依赖于libSB的libSC:
libSA -> libSB -> libSC
Run Code Online (Sandbox Code Playgroud)
和三个动态链接库:libDA -> libDB -> libDC(libDA是基本的,libDC是最高的)
这些顺序应该链接在哪?第一个还是最后一个?
g++ ... -g libSA libSB libSC -lDA -lDB -lDC -o my_app
Run Code Online (Sandbox Code Playgroud)
看起来像现在的顺序,但是这样吗?如果任何动态库与静态库或其他方式之间存在依赖关系,该怎么办?
c++ linker shared-libraries dynamic-linking static-libraries