我的代码依赖于< X11 / Xlocale.h>。当我尝试使用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.
答案 0 :(得分:1)
Emscripten无法使用本机库 - 毕竟它输出的是Javascript代码;它不能使用包含本机x86(或其他架构)代码的库。因此,emscripten不会在系统的包含目录中搜索标题,因为很多标题将描述Emscripten程序无法使用的功能。它改为使用内部搜索路径。
现在,<X11/Xlocale.h>
有点奇怪。它实际上并没有定义任何东西;它只包含<locale.h>
,因此您可以使用#include <X11/Xlocale.h>
替换#include <locale.h>
。但是,如果您的应用程序使用其他X11功能,则可能无法在Emscripten下构建。