我觉得很奇怪-Wl,-Bstatic,以便告诉gcc我想要静态链接哪些库.毕竟我gcc直接告诉所有关于链接库的信息(-Ldir,-llibname).
是否可以直接告诉gcc驱动程序哪些库应该静态链接?
澄清:我知道如果某个库只存在于静态版本中,它将在没有它的情况下使用它-Wl,-Bstatic,但我想暗示gcc更喜欢静态库.我也知道直接指定库文件会链接它,但我更喜欢保持包含静态和动态库的语义相同.
我需要分发一个可以在尽可能多的x86 Linux发行版上运行的二进制文件.这意味着我必须静态链接一些库,如glibc,因为用户可能没有我使用的版本.其他库必须动态链接,如fontconfig,因为它依赖于缓存文件格式和每个系统上可能不同的硬编码位置.
执行此操作的命令行选项有哪些?如果我指定-static,那么gcc将拒绝动态链接任何库.