【问题标题】:Shared library: no version information available共享库:没有可用的版本信息
【发布时间】:2011-12-13 19:29:40
【问题描述】:

我在 linux 中使用 Awesomium,SDK 只提供一个共享库:libawesomium-1.6.3.so。我机器上的一些库的版本低于 Awesomium 所需的版本:

$ ldd libawesomium-1.6.3.so

libawesomium-1.6.3.so: /usr/lib/libjpeg.so.62: no version information available
 (required by libawesomium-1.6.3.so

所以当我使用g++ -lawesomium-1.6.3 ... 进行编译时,我会收到如下错误:

libawesomium-1.6.3.so: undefined reference to 'jpeg_finish_output@LIBJPEG_6.2'

我知道更新 jpeg 库可以解决问题。但是我在linux机器上没有root权限。

所以我想知道是否有办法指定一个新的libjpeg.so 的相对路径供awesomium-1.6.3.so 使用。

更新(无法评论答案):

我尝试添加-L/path/to/new/libjpeg.8 -ljpeg 标志,出现以下警告:

/usr/bin/ld: warning: libjpeg.so.62, needed by libawesomium-1.6.3.so, may conflict
 with libjpeg.so.8

并且编译仍然失败。我认为问题是,libjpeglibawesomium 间接引用,而不是我的代码直接引用。

【问题讨论】:

    标签: c++ linux linker


    【解决方案1】:

    使用-L 选项。但是使用它之前 -ljpeg!

    【讨论】:

      【解决方案2】:

      编译时,如fge所说,使用-L选项。但要运行它,您必须将库的路径添加到LD_LIBRARY_PATH 环境变量(参见§3.3.1 here)。

      【讨论】:

        猜你喜欢
        • 2015-03-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多