共享库:没有可用的版本信息

时间:2011-12-13 19:29:41

标签: c++ linux linker

我在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间接引用,而不是由我的代码直接引用。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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