很好的一天!我在使用gcc的Linux上的链接有问题。例如,我在一台机器上编译了项目,并将其与libGLEW链接。当我试图在另一台机器上运行它时,它找不到libGLEW,因为第一台机器有libGLEW.so.1.7,第二台机器有libGLEW.so.1.10。
ldd告诉我,它依赖于“libGLEW.so.1.7”。
创建symlink'libGLEW.so.1.7=>libGLEW.so.1.10'之后,一切正常,但是有没有办法将'libGLEW.so'存储为依赖项而不是'libGLEW.so.1.7'?

最佳答案

是什么让你确定GLEW的函数接口没有改变?
或者说1.1到1.7版本的内容还是一样的?
如果它是用1.7构建的,那么它也依赖于1.7。
因此,您不应该在GLEW的另一个版本上运行它,除非GLEW的api文档告诉您,由于某种原因,这种交叉版本控制是可能的(但我无法想象)。
另外,还可以使用GLEW 1.1构建它
(因为好像1.7中使用的所有功能都受1.1的支持,而且出于某种原因,您必须同时支持这两个版本),所以为不同版本的GLEW提供不同版本的程序是最好和有效的方法。
如果不是这样的话,让用户按照要求使用Glew 1.7或更高版本。
但是没有一种安全的方法来存档你想要的东西。
而且根本没有gcc或任何编译器命令。

关于linux - GCC-动态依存关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25199312/

10-15 01:17