linux - glew 可以与 Linux 上其他库中的 glew 冲突吗?
问题描述
我有一个动态库,它glew.c
在构建和构建中使用GLEW_STATIC
. 如果另一个库链接到同一个应用程序并且还以某种方式包含 GLEW,是否有可能由于单一定义规则而导致 Linux 出现问题?
解决方案
只要您不导出任何符号就可以了。所有 GLEW 符号都应具有“隐藏”属性。-fvisibilty=hidden
您可以通过在编译时使用将默认可见性设置为“隐藏”来做到这一点。您可以使用__attribute__ ((visibility ("default")))
显式导出要导出的符号。
老实说,我无法将这种行为与 ODR 调和。我会谨慎地说 ODR 不考虑符号的可见性。
推荐阅读
- elixir - 通过 Phoenix Elixir 处理 Pipe 中的不同范围和版本
- python - 调用函数后值意外更改
- c# - 为什么 .net 核心依赖注入对我不起作用?
- c - 我正在尝试使用结构的数组,但出了点问题
- html - 带有表单的内容页面
- r - 相当于数据框的新 S3 对象:为什么不同的打印输出?
- nginx - nginx proxypass 的自定义变量
- swift - 如何使用 Combine + Swift 复制 PromiseKit 风格的链式异步流
- java - JUnit application.properties 总是返回 null
- android-activity - 如何从片段 recyclerView 更新活动视图