像libiconv.so.2这样.so后面有数字的动态库如何链接,如何理解?(高手来)
为什么有些动态库后面有数字呢?如:libiconv.so.2 有人说是和升级新版本有关,创建一个软连接。
我的makefile里要链接iconv这个动态库自然是添加 -liconv,那么运行时只会依赖libiconv.so而不是libiconv.so.2或者libiconv.so.1吧?
如果要依赖libiconv.so.2那么makefile如何填写呢?
这里对动态库的软链接和依赖,不太理解,多谢解惑.
------解决方案--------------------版本有关,比如你上面说的libiconv.so.2,一般会建立一个libiconv.so的软连接,用-liconv也是找的libiconv.so,这样的好处是我可以有多个版本的iconv库,比如还有一个libiconv.so.1,可以同时存在,但编译和执行的时候使用的是libiconv.so软连接指向的那个!这样makefile也不需要根据库版本进行变更
------解决方案--------------------
最终还是指向libiconv.so的