【发布时间】:2012-07-16 10:18:57
【问题描述】:
我想为其他开发人员编译一个共享库,但不提供源代码。 我针对 g++ 4.6 构建的 .so 文件,但他们使用的是 g++ 4.4。 当他们与我的 .so 文件链接时,g++ 报告:未定义对 'memcpy@GLIBC_2.14' 的引用。
我认为有两种可能的解决方案:
我重建了不依赖于指定 GLIBC 版本的共享库。
告诉他们一种简单的方法来链接我的共享库,并使用一些编译器选项使其工作。
我不知道这两种方法,我怎样才能实现这些解决方案或其中之一?
谢谢。
编辑:
我找到了一个链接标志:-static-libgcc
如果我使用此选项构建共享库,这有帮助吗?有什么缺点吗?
【问题讨论】:
-
您正在考虑 glibc,而不是 glib - 请参阅 this question。
-
不是g++版本,是libc版本。我在 Ubuntu 10.04.4 LTS 上只有
memcpy@GLIBC_2.0,所以我也会得到未定义的引用。可以链接到最古老的 glibc。