第三方库中的宏冲突
macro collisions in third party libraries
我正在使用 yojimbo - a networking library and spdlog - 我正在开发的游戏的日志库。当我尝试使用 yojimbo 和 spdlog 的 headers 编译源文件时,我遇到宏冲突,导致 g++ 给出的许多错误。
具有 headers 之一但不能同时编译的源文件。
有没有办法避免这些第三方库中的宏冲突?
Is there a way to avoid macro collision in these third party libraries?
是的。最简单的解决方案是不将定义冲突宏的 headers 都包含到同一翻译单元中。如果这还不够,那么一个可能的解决方案是在包含第一个宏后取消定义冲突的宏。如果你需要这两个宏,那么你可以在undefinition之后用另一个名字重写。
我正在使用 yojimbo - a networking library and spdlog - 我正在开发的游戏的日志库。当我尝试使用 yojimbo 和 spdlog 的 headers 编译源文件时,我遇到宏冲突,导致 g++ 给出的许多错误。
具有 headers 之一但不能同时编译的源文件。
有没有办法避免这些第三方库中的宏冲突?
Is there a way to avoid macro collision in these third party libraries?
是的。最简单的解决方案是不将定义冲突宏的 headers 都包含到同一翻译单元中。如果这还不够,那么一个可能的解决方案是在包含第一个宏后取消定义冲突的宏。如果你需要这两个宏,那么你可以在undefinition之后用另一个名字重写。