使用emscripten编译时,如何包含?
问题描述:
我的代码取决于<X11/Xlocale.h>。当我尝试使用emscripten工具链(在CMake生成后)编译时,出现以下错误。我需要在配置中更改哪些内容?使用emscripten编译时,如何包含<X11/Xlocale.h>?
'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将不会搜索系统包含目录中的标题,因为很多这些标题将描述Emscripten程序无法使用的功能。它使用内部搜索路径。
现在,<X11/Xlocale.h>
是一个奇怪的头。它实际上并没有定义任何东西;它只包括<locale.h>
,所以你可以用#include <locale.h>
代替#include <X11/Xlocale.h>
。但是,如果您的应用程序使用其他X11功能,则可能无法在Emscripten下构建。
+0
谢谢。我用
CMake应该可能会抱怨,但是如何安装包含该文件的包? – Darklighter
*我需要在我的配置中更改什么?*您需要首先向我们显示您的配置。 – CroCo
已更新。我还应该报告什么? –