我正在尝试编译一个Linux程序id3v2,但它说找不到相应的库:
id3v2: error while loading shared libraries: libid3-3.8.so.3: cannot open shared object file: No such file or directory
我猜这部分是导入lidid3库的代码?
文件确实存在,然而他们要找的实际上是一个符号链接:
"ibid3-3.8.so.3.0.0"
我在想这是否是无法追踪符号链接的问题?如果我知道在哪里更改它,也许我可以手动更改为寻找0.0版本。
我很乐意澄清任何细节。
看起来包含方式如下:
id3v2: convert.o list.o id3v2.o genre.o
${CXX} ${LDFLAGS} -pedantic -Wall -g -o $@ $^ -lz -lid3
我能够使用Simon的建议找出有多个可能存在库文件的地方,我在程序链接到实际文件的位置创建了一个符号链接。
感谢Simon!
ldconfig
命令?这个程序会为可用的库创建一个注册表,用于运行时库加载。诀窍在于库必须放置在ldconfig
期望看到它的位置,这取决于发行版。库目录的列表通常位于/etc/ld.so.conf
或类似位置。 - Alex