2

我试图最小化由共享库 mysql++ 引起的依赖关系。我知道这听起来很奇怪;但我正在努力解决 Slamd64(安装了 32 位兼容性)的平台限制,它本身没有某些库。由于依赖于其他应用程序,我处于无法更改 libmysqlclient 设置的情况。

使 mysql++ 库静态链接到它的依赖项的说明,这就是我想要做的。不要试图将我的应用程序静态链接到 mysql++;我仍然想动态链接到 mysql++。

4

1 回答 1

2

这不是很容易。您将需要

  1. 获取分发所需的 .a 库列表(不要在此处添加系统安装的库,如 libc.a)
  2. 静态编译所有 .a,但启用 -fPIC
  3. 将所有 .a 链接到一个 .so
  4. 检查,你能 ldd 这个 .so 并将其加载到应用程序中吗

使用 ENV LD_LIBRARY_PATH 和 LD_PRELOAD 可以有一个解决方法。它们可以帮助您屏蔽系统范围的库并将应用程序指向您的库。只是谷歌这个变量。

于 2010-02-07T03:30:18.257 回答