【问题标题】:How to link executable to common version of shared library?如何将可执行文件链接到共享库的通用版本?
【发布时间】:2014-10-06 09:49:40
【问题描述】:

我在 linux 主机 (x86_64) 上使用 gcc 构建了应用程序,它链接到共享库的确切版本号。我指定链接器选项-lQt5Core,但应用程序链接到 libQt5Core.so.5.3.1。

如何构建与共享库(如 libQt5Core.so.5)的通用版本链接的应用程序?

所以我想将我的应用程序链接到 libQt5Core.so.5,而不是 libQt5Core.so.5.3.1。怎么做?

谢谢。

【问题讨论】:

  • 不,它不是重复的。我想构建链接到通用版本库的应用程序。目的是为 gentoo 或 Arch(AUR) 构建包,链接到常见的 lib 版本。因为在更新提升库后,大多数应用程序都无法工作。例如,在将 boost 从 1.55 更新到 1.56 之后,大多数应用程序都无法工作,因为它们仍然链接到 boost 1.55。我只是想链接应用程序来提升 1。

标签: c++ linker version


【解决方案1】:

您可以使用指定确切的库版本

-l:libQt5Core.so.5

或提供您要搜索的目录。

-lQt5Core -L _LIB_PATH_  // _LIB_PATH_ is the path where the library you want to link is.

【讨论】:

  • 没有。我想指定链接器选项 -lQt5Core 但将可执行文件链接到 libQt5Core.so.5,而不是 libQt5Core.so.5.3.1。
  • 对不起,应该是这样的。
猜你喜欢
  • 2023-03-15
  • 2021-06-16
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
相关资源
最近更新 更多