在使用emscripten进行编译时,我该怎么做才能包含<x11 xlocale.h =“”>?

时间:2017-10-15 03:21:56

标签: c++ cmake emscripten

我的代码依赖于&lt; X11 / Xlocale.h&gt;。当我尝试使用emscripten工具链进行编译时(在CMake生成之后),我收到以下错误。我需要在配置中更改什么?

      'X11/Xlocale.h' file not found
#    include <X11/Xlocale.h>
         ^~~~~~~~~~~~~~~
1 error generated.

我在Linux上这样做。

$ uname -a
Linux bracket 4.10.0-37-generic #41-Ubuntu SMP Fri Oct 6 20:20:37 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

我已经确认我安装了libx-dev。

$ sudo apt-get install libx11-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libx11-dev is already the newest version (2:1.6.4-3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

1 个答案:

答案 0 :(得分:1)

Emscripten无法使用本机库 - 毕竟它输出的是Javascript代码;它不能使用包含本机x86(或其他架构)代码的库。因此,emscripten不会在系统的包含目录中搜索标题,因为很多标题将描述Emscripten程序无法使用的功能。它改为使用内部搜索路径。

现在,<X11/Xlocale.h>有点奇怪。它实际上并没有定义任何东西;它只包含<locale.h>,因此您可以使用#include <X11/Xlocale.h>替换#include <locale.h>。但是,如果您的应用程序使用其他X11功能,则可能无法在Emscripten下构建。