首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Mac上使用Emscripten emcc和make时包含ncurses

如何在Mac上使用Emscripten emcc和make时包含ncurses
EN

Stack Overflow用户
提问于 2012-05-26 23:28:59
回答 1查看 1.7K关注 0票数 6

我正在尝试使用Emscripten的http://rephial.org/downloads/3.3/angband-v3.3.2.tar.gz构建一个项目(即Angband的源代码- Javascript ),以便将其移植到Javascript,并最终构建一个在线版本。

我已经设法让这个过程开始于

Emconfig./configure make

开始成功地开始生成LLVM .o文件,但随后在main-gcu.c上挂起,并显示'main-gcu.c:43:11: fatal error:'ncurses.h‘file not found’

我相信main-gcu.c是唯一引用ncurses的文件,但我就是想不出如何在编译时包含这个库。有没有办法用'make‘指定包含ncurses,或者我应该单独编译-c -gcu.c文件,用'emcc main-gcu.c ncurses’?我尝试过这样做,但这导致了另一个错误,emcc无法找到下一层实际上包含的其他头文件(它无法找到包含在main-gcu.c包含的头文件中的头文件--无论如何都不能解决这个问题?)

我也不确定是否已经/需要在Mac OSX上安装ncurses库。我真正能找到的就是Linux下libncurse5-dev的引用。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-18 07:25:58

我认为你误解了Emscripten的编译。我会试着指出你面临的几个问题。

  1. 一般规则是所有Emscripten 的工具只有可以将LLVM formats (例如位码)转换为JavaScript。emconfigureemmake...修改构建环境,以便将源代码编译为其中一种LLVM格式(规则有例外,但不要紧)。因此,您想要链接到最终结果的任何东西都必须是LLVM格式(缺省情况下ncurses不是)。
  2. 由于输出是JavaScript,因此没有机会在不同的线程中执行任何程序代码。虽然许多C/C++代码确实为UI使用线程,并使用其他线程进行处理,但这样的模型不能为Emscripten 工作。因此,为了让软件编译/运行,你必须重写使用线程的部分。参见pointers.
  3. Even的emscripten_set_main_loop如果你已经编译了这些库,那么你必须静态地链接它们到Emscripten。在这一点上,这不是一个技术问题,但更多的是许可证问题,因为如果你的库是在例如LGPL下授权的,由于静态链接,GPL条款是有效的。

我希望所有的清晰度最终消失;)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10767489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档