我需要静态链接glibc的到我的项目,因为该目标平台只支持一个很旧的(但它与静态链接glibc的工作从我的工具链,我已经检查了它)
不幸的是,这个应用程序必须使用并行线程库,但静态链接的libpthread需要太多的空间。
我想静态链接glibc的,而动态并行线程。
运行这个命令之后
powerpc-unknown-linux-gnu-gcc object_files -lrt -lpthread -Wl,-Bstatic -lc
我得到:
/powerpc-unknown-linux-gnu/bin/ld: cannot find -lgcc_s
有一个-static-libgcc
,如果可以帮助
您应该使用-static
,不-Wl,-static
。 后者绕过GCC的知识,因此,海湾合作委员会仍在试图链接共享libgcc_s.so
而不是静态libgcc_eh.a
。
如果你的目标是静态链接libc的,但动态的libpthread,这根本是行不通的。 你不能混合和匹配不同版本的libpthread的; 这是glibc的,只是一个单独的文件的一部分,而内部需要匹配。 即使是同一个版本,我想静态链接libc和动态的libpthread会很破。
如果glibc的太大了你的需求,你可以尝试一个备用的libc像uClibc的或MUSL 。