我如何有条件地编译emscripten的代码?

Chr*_*gan 9 conditional-compilation emscripten

使用支持构建多个操作系统的代码库,只有在需要对Emscripten进行修改时才能将它们集成到同一代码库中,并在条件编译的帮助下使其继续在其他环境中工作.

但是,似乎没有任何关于这个主题的文档,这对我来说似乎很糟糕,我也无法找到任何关于它的问题,这对我来说似乎非常令人惊讶 - 我预计它会被很好地践踏并记录下来.

我怎样才能做到这一点?

(我看过tools/shared.py,这似乎暗示#ifdef EMSCRIPTEN或者#ifdef __EMSCRIPTEN__可以使用;我仍然会问这个问题,以确定我是否正确,如果这是正确的方法,甚至可能应该使用它.)

Smi*_*Smi 9

根据预处理器中的Detecting Emscripten,使用的正确定义是__EMSCRIPTEN__.

2016年10月,引入了严格的构建模式,启用后,将删除EMSCRIPTEN定义.因此,即使它仍然在非严格构建模式下工作,也不建议使用EMSCRIPTEN它.


abe*_*ier 5

#ifdef EMSCRIPTEN 是AFAIK的首选方式。

在用#ifdefs弄乱您的源代码之前,请考虑拥有某些平台相关文件并让构建工具完成工作是否更有意义。

此外,emscripten已经定义了LINUX,因为它的处理方式非常像 Linux 系统。通常这种行为已经解决了平台处理的大部分需求。