我们构建了一个依赖于libsdl-gfx
的共享库。
在 Ubuntu 12.04 到 14.10 上,链接了 libSDL_gfx.so.13
;在 Ubuntu 15.04 和 15.10 上,libSDL_gfx
更新为 libSDL_gfx.so.15
。
为了让它工作,我们需要构建另一个版本的共享库,它依赖于 libSDL_gfx.so.15
。
那么问题是这种情况的正确方法是什么?是否可以只构建一次可在 Ubuntu 12 和 Ubuntu 15 上使用的库?谢谢。
刘杰
最佳答案
So the question is what is the correct way for this case?
您已经在做的事情:构建您的库的两个版本。
Is it possible to just build my library once which can be used on both Ubuntu 12 and Ubuntu 15?
没有。假设 libSDL_gfx.so
开发人员有能力,他们更改库的外部版本是有原因的:ABI 更改。如果您尝试将您的库与 ABI 不兼容版本的 libSDL_gfx
一起使用,您会遇到崩溃(或更糟的情况——微妙的内存损坏)。阅读有关外部库版本控制的信息 here .
关于linux - 为不同版本的 Ubuntu 管理共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312415/