第三方库中的宏冲突

macro collisions in third party libraries

本文关键字:冲突 第三方      更新时间:2024-03-28

我正在使用yojimbo(一个网络库(和spdlog——一个用于我正在开发的游戏的日志库。当我试图编译一个包含yojimbo和spdlog头的源文件时,我会遇到宏冲突,导致g++给出的许多错误。

具有任一标头但不是同时具有两者的源文件编译正常。

有没有办法避免这些第三方库中的宏冲突?

在这些第三方库中有没有避免宏冲突的方法?

是。最简单的解决方案是不将定义冲突宏的两个标头包含在同一翻译单元中。如果这还不够,那么一个潜在的解决方案是在包含第一个宏之后取消对冲突宏的定义。如果你需要两个宏,那么你可以在undefinition之后用另一个名字重写它。