两个第 3 方库中 uint32 的 Typedef 重新定义 (C2371)

2023-12-25

在我的应用程序中我使用Box2D http://www.box2d.org/ and 蜘蛛猴 https://developer.mozilla.org/en/spidermonkey。这两个库都定义了 uint32 类型,这显然在同一编译单元中使用这两个库时给我带来了编译器错误。

b2settings.h (Box2D): typedef unsigned int uint32;

jsotypes.h (Spidermonkey): typedef unsigned long uint32;

有什么方法可以解决此冲突而不需要更改第 3 方库的标头吗?

我很感谢每一个提示!


你可以这样做:

#define uint32 Box2D_uint32
#include "Box2D.h"
#undef uint32
#define uint32 Spider_uint32
#include "Spidermonkey.h"
#undef uint32

Since typedef只是一个别名,只要这些标头仅包含声明,就不会导致 ODR 违规。如果存在使用 uint32 的(结构体或内联函数)定义,则它will违反 ODR。尽管您的编译器可能不够智能,无法检测到这一点,但它仍然可以工作。

但更好的选择是将问题报告给库开发人员,以便他们修复该问题,例如命名空间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个第 3 方库中 uint32 的 Typedef 重新定义 (C2371) 的相关文章

随机推荐

  • 如何在 C++ 中发送或保存函数以及接收或恢复函数并执行它?

    有什么方法可以将函数发送或保存为文件吗 我想在 Windows 平台上用 C 执行此操作 我假设读者和发件人或保存者之间存在某种约定 如果我像下面这样发送可以吗 服务器端 label1 int func1 int somevar int a
  • AngularJS:从列表动态添加组件

    因此 我正在开发一个允许用户修改模板的项目 基本模板将由组件组成 用户将能够添加或删除组件 我在网上找到了一些东西 例如grapeJS 但对于这个简单的应用程序来说 它的强度还远远不够 寻找一些有关解决此问题的方法的建议 或任何有帮助的资源
  • 为什么 django 网站上的日志功能不起作用?

    这就是我尝试过的 在我的 view py 文件中 import logging logger logging getLogger mylog logging basicConfig format name s levelname s mes
  • Dart - Base64 字符串不等于 python

    当我使用Python生成一个base64将在中使用的字符串raw key raw value GMAIL API 发送电子邮件完美发生 但是当我使用 Dart 生成相同的base64string 该字符串与 python 不同 因此我无法发
  • 如何使 Orientdb 的优势变得独特

    如何使 Edge 在 Orientdb 中独一无二 我想出的解决方案 删除边缘 再次创建它 但这并不好 Edge 没有任何属性 Example create edge is friend from 12 0 to 12 3 如果我再次调用它
  • PyTorch RuntimeError:DataLoader 工作线程(pid(s) 15332)意外退出

    我是 PyTorch 的初学者 我只是尝试一些示例在这个网页上 https github com pytorch examples 但由于此错误 我似乎无法运行 super resolution 程序 RuntimeError DataLo
  • 球与球的碰撞 - 检测和处理

    在 Stack Overflow 社区的帮助下 我编写了一个非常基本但有趣的物理模拟器 您单击并拖动鼠标来发射球 它会弹来弹去 最终停在 地板 上 我想添加的下一个重要功能是球与球的碰撞 球的运动被分解为 x 和 y 速度矢量 我有重力 每
  • lambda 演算、正规阶、正规形式、

    在 lambda 演算中 如果一项具有范式 则范阶缩减策略将始终产生它 我只是想知道如何严格证明上述命题 您提到的结果是所谓标准化定理的推论 该定理指出 对于任何归约序列 M gt N 相同项 M 和 N 之间存在另一个 标准 序列 其中您
  • 编译需要参数的表达式

    好吧 我确信这很简单 但我正在经历一个高级时刻 我有一个简单的 BinaryExpression 大于 左侧是 ParameterExpression 右侧是 ConstantExpression 我想将此表达式编译为一个函数 我可以调用该
  • 如何在 python-socketio 中将消息从 python 服务器发送到 javascript 客户端?

    socketio客户端成功连接到服务器并发送消息emit到服务器 但到客户端的另一个方向服务器失败 我找不到错误的根源 这是 这是服务器 pythonapp py基于中的示例python socketio https python sock
  • 类型错误:“_VirtualList”对象不可调用

    当我运行此代码时 我的 GUI 显示此错误 VirtualList 对象不可调用 我哪里错了 import PyPDF2 pdf open the alchemist paulo coelho pdf rb reader PyPDF2 Pd
  • 如何限制docker容器上传的速率?

    我需要防止长时间运行的多 TB 上传耗尽我的所有网络带宽 但我只能在进程级别限制其带宽使用 这意味着减慢整个计算机的网络接口或减慢该用户的网络流量不会工作 幸运的是 上传是用 Docker 容器化的 我该怎么做才能减慢 docker 容器的
  • PHP后台进程

    我写了一个 php irc 机器人 但我需要它在后台工作 有了这个 就不会有退出之类的事情了 做这个的最好方式是什么 感谢致敬 看看下面的网站 关于如何编写 PHP 守护进程有一个相当深入的解释 http kevin vanzonnevel
  • 二维等距网格中的点击检测?

    我从事网络开发已经很多年了 我正在慢慢地参与游戏开发 对于我当前的项目 我有这个等轴测图 我需要使用算法来检测正在单击哪个字段 顺便说一句 这一切都是在浏览器中使用 Javascript 实现的 The map看起来像this https
  • Adobe InDesign .jsx 脚本 执行 .jsx 脚本

    完成执行另一个 jsx 脚本后 如何才能让我的 jsx 脚本执行完毕 也许这将有助于理解我正在尝试做的事情 WebCard jsx file function mySnippet
  • 如何在 GitHub Markdown 中垂直对齐元素?

    如何垂直对齐下图中的图像和文字 我在 Markdown 中是这样写的 a a Download https api bintray com packages edsilfer maven search interface images do
  • 如何获取“Angular2 for TypeScript”(测试版)中的 li-Element 以添加特定的 CSS 类?

    在我的 Angular2 项目中 我试图实现一个搜索框 其结果框看起来就像在 Google 中一样 这就是我得到的并且它有效 但不幸的是 当您搜索某些内容并按 key down 或 key up 时 结果框中的搜索结果不会像 Google
  • for 循环处理不同的变量名

    我正在编程一段时间 但为此我还找不到答案 假设我想在更改变量名称时运行循环 可以说我有 int ran1 int ran2 int ran3 现在我想运行一个 for 循环 将数字放入其中 for int k 0 k lt 3 k ran
  • SOAP 泛型类型序列化

    我们创建了一个类来包装 Web 服务响应的有效负载和公共信息 如下所示 public class ItemResponse
  • 两个第 3 方库中 uint32 的 Typedef 重新定义 (C2371)

    在我的应用程序中我使用Box2D http www box2d org and 蜘蛛猴 https developer mozilla org en spidermonkey 这两个库都定义了 uint32 类型 这显然在同一编译单元中使用