我承认这是一个家庭作业问题,询问是否可行。我相信答案是肯定的,但我不知道“为什么?”这个问题的答案。对我而言,答案似乎只是'为什么不呢?'......任何人都可以提供更深入的见解,说明为什么这是真的(或不真实,如果我错了)?似乎这个问题只会被问到是否有一个棘手的部分,但从我对编译的理解,似乎没有任何东西可以禁止链接到两者。
答案 0 :(得分:1)
是的,您当然可以链接静态库和动态库。链接到静态库与从归档中获取所需的目标文件并将它们包含在链接过程中基本相同。
如果要链接的静态库和动态库用于相同的库,则动态链接是多余的。它仍然被允许完成,但它没有意义(并且只为可执行文件引入了不必要的运行时依赖性,至少在Unix上)。
答案 1 :(得分:1)
通常,没有理由不能链接到静态库和动态库,特别是如果它们不冲突(例如,提供相同的符号)。这样做的机制将根据您的编译器而有所不同,但许多自由软件项目实际上是这样做的 - 他们静态地构建了一个所谓的“便利库”,然后将其链接到动态链接的可执行文件中。