使用 emscripten 编译时,我该怎么做才能包含 <X11/Xlocale.h>?
What do I do to include <X11/Xlocale.h> when compiling with emscripten?
我的代码依赖于 。当我尝试使用 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.
Emscripten 不能使用本地库——毕竟它输出的是 Javascript 代码;它不能使用包含本机 x86(或其他体系结构)代码的库。因此,emscripten 不会在您系统的包含目录中搜索 headers,因为其中很多 headers 将描述 Emscripten 程序不可用的功能。它改用内部搜索路径。
现在,<X11/Xlocale.h>
有点奇怪 header。它实际上并没有定义任何东西;它仅包含 <locale.h>
,因此您可以将 #include <X11/Xlocale.h>
替换为 #include <locale.h>
。但是,如果您的应用程序使用其他 X11 功能,它可能无法在 Emscripten 下构建。
我的代码依赖于
'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.
Emscripten 不能使用本地库——毕竟它输出的是 Javascript 代码;它不能使用包含本机 x86(或其他体系结构)代码的库。因此,emscripten 不会在您系统的包含目录中搜索 headers,因为其中很多 headers 将描述 Emscripten 程序不可用的功能。它改用内部搜索路径。
现在,<X11/Xlocale.h>
有点奇怪 header。它实际上并没有定义任何东西;它仅包含 <locale.h>
,因此您可以将 #include <X11/Xlocale.h>
替换为 #include <locale.h>
。但是,如果您的应用程序使用其他 X11 功能,它可能无法在 Emscripten 下构建。