【问题标题】:Linux: Constant is defined in a library, and I need to use another library that has the same constant redifinedLinux:常量定义在一个库中,我需要使用另一个重新定义相同常量的库
【发布时间】:2014-08-04 11:17:45
【问题描述】:

我需要使用带有 FLTK GUI 的库。新库有一个已被 X11 使用的已定义常量,它位于 X.H. 常数是“无” 因此,我无法编译该项目。同一个项目在 Windows 上运行得很好。唯一的问题是 X.H 的使用,它具有与其他库相同的常量。 有没有办法解决这个问题? 提前致谢。

【问题讨论】:

  • 为了避免名称冲突,有前缀(对于 C 代码)或命名空间(对于 C++)。一个或两个库都没有使用它们,甚至可能使用邪恶的宏,这是一个错误。提交错误报告。另外,除了FLTK/X11,还有哪个库污染了全局命名空间?
  • 另一个是视觉凸轮库工具包的一部分,常量变量在 Genicam 库中。一定是bug

标签: c++ linux variables constants fltk


【解决方案1】:

作为临时修复,请检查两者是否定义了相同的值。如果没有,你就完蛋了,向库作者投诉。

然后,添加#ifndef 以将#define 括起来,如下所示:

#ifndef FOO
#define FOO 1
#end

【讨论】:

  • 不,其实都是分布式库。一个是 X 服务器库,另一个是使用 Genicam 的 Vision Camera。
猜你喜欢
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多