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

2024-04-19

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

我已经成功地开始了这个过程

emconfigure ./configure 制作

它开始成功开始生成 LLVM 位码 .o 文件,但随后它挂在 main-gcu.c 上,并显示“main-gcu.c:43:11: fatal error: 'ncurses.h' file not find”

我相信 main-gcu.c 是唯一引用 ncurses 的文件,但我只是不知道如何在编译时包含该库。有没有办法指定包含 ncurses 与 'make',或者我应该使用 'emcc main-gcu.c -c -lncurses' 单独编译 main-gcu.c 文件?我尝试这样做,但这导致了另一个错误,emcc 无法找到其他实际包含的头文件(它无法找到 main-gcu.c 包含的头文件中包含的头文件 - 无论如何要解决这个问题吗? )。

我也不确定是否有/需要在 Mac OSX 上安装 ncurses 库。我真正能找到的只是对 Linux 的 libncurses5-dev 的引用。

Thanks!


我认为你误解了编译埃姆脚本。我将尝试指出您面临的一些问题。

  1. 一般规则是所有工具埃姆脚本 ONLY可以转动LLVM formats (e.g. BITCODE) into JavaScript. emconfigure, emmake, ...修改构建环境,以便将源代码编译为以下之一LLVM格式(该规则有例外,但没关系)。因此,您想要链接到最终结果的任何内容也必须采用 LLVM 格式(默认情况下ncurses不是)。

  2. 由于输出是JavaScript,没有机会在不同的线程中执行任何程序代码。虽然许多 C/C++ 代码确实使用线程用于 UI 并使用其他线程进行处理,但这样的模型确实NOT为。。。工作埃姆脚本。因此,为了使软件编译/运行,您必须重写使用线程的部分。看emscripten_set_main_loop供指点。

  3. 即使您已经编译了库,您也必须静态地将它们链接到埃姆脚本。在这一点上,这不再是一个技术问题,而是更多的一个许可证问题,因为如果您的库获得了许可,例如LGPL由于静态链接GPL条款有效。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Mac 上使用 Emscripten emcc 和 make 时包含 ncurses 的相关文章

随机推荐

  • NSKeyValueObservation:无法从对象中删除关键路径的观察者,因为它未注册为观察者

    我的应用程序中出现随机崩溃 我无法在我拥有的设备上重现 但有例外 无法从 AVPlayerLayer 0xaddress 中删除关键路径 readyForDisplay 的观察者 Foundation NSKeyValueObservati
  • 导入Matplotlib而不显示

    我正在尝试在我的 Linux 服务器上运行 python 脚本并制作并保存一些绘图 我已经安装了ipython and pylab and matplotlib但当我运行我的脚本时 我收到此错误 Traceback most recent
  • 引用 wmp.dll (\windows\system32\wmp.dll)

    我可以在商业应用程序中使用对 wmpLib ddl wmp dll windows system32 wmp dll 的引用吗 我在用Visual Studio 2008 Express http en wikipedia org wiki
  • 具有可选命令行模式的 Cocoa 应用程序

    我即将从头开始一个新的 Cocoa 项目 我已经给出的要求之一是能够从同一个可执行文件中选择 Cocoa GUI 或命令行模式 未来可能会增加脚本能力 但这不是现在的问题 在 Cocoa 中解决这个问题的最佳策略是什么 特别是如果我想维护某
  • Struts2 jQuery 插件 java.lang.ClassNotFoundException: org.apache.struts2.views.TagLibrary

    该问题涉及到Struts v2 3 16 and Struts2 jQuery 插件 v3 6 1 Struts 项目似乎不支持第三方插件 例如 Struts2 jQuery 插件 如何解决以上版本不兼容的问题 这是启动时抛出的异常 13
  • 如何在移动设备上使用Unity3d实现多点触控?

    I use OnMouseDown 可以处理按压 但不可能实现多点触控 该程序包括当您点击时增加然后减少的对象 如果轻轻一按 一切都会正常 但是 当您尝试同时单击多个对象时 它不起作用 我正在尝试解决该问题 但它不起作用 对象无法缩放并且多
  • std::bind 和 boost::bind 多态性之间的区别

    我有一个派生类 从中绑定了一个我没有在此类中重写的虚函数 因此我希望调用父类中的一个 它与 boost 1 55 配合得很好 但如果我从 C 11 切换到 std bind 它会拒绝编译 错误 C2100 非法间接寻址 1 gt 功能 11
  • Ant 使用 -source 7 或更高版本来启用钻石运算符

    我确信这是一个非常简单的问题 但我一直坚持使用 Ant 从命令行构建 Android 应用程序 我收到这样的消息 use source 7 or higher to enable diamond operator 我需要在构建文件中添加什么
  • 在 Wpf 中创建垂直菜单

    如何使用 xaml 在 Visual Studio 在 wpf 中 窗口的左侧创建一个垂直菜单 就像http www wpftutorial net http www wpftutorial net 我尝试代码 menu 但这不是任务 因为
  • 如何在 Ada 中直接访问内存地址?

    所以我是 Ada 的新手 我正在尝试在其中编写内核 但我似乎找不到任何关于如何正确执行此操作的好信息 在 C 语言中 我会这样写 unsigned char videoram char 0xB8000 videoram 0 65 直接访问视
  • 如何解释方案表达式 '(a 'b)

    a b 给出答案 a b 当 a 没有绑定 未加引号 时 这是如何工作的 这就是我们计算表达式时发生的情况 a b gt a b The quote 是简写quote http docs racket lang org guide quot
  • D有“新类型”吗?

    D 是否有 newtype 如 Haskell 中 这是一个天真的问题 因为我只是浏览 D 但谷歌没有找到任何有用的东西 在 Haskell 中 这是一种在编译时使同一事物的不同类型变得不同的方法 但不会导致任何运行时性能损失 例如你可以为
  • 致命错误:无法声明类

    我不明白为什么 php 给我一个错误 致命错误 无法声明类 rex builder RexBuilder 因为 名称已在 var www site2 dev App rex RexBuilder php 中使用 12 号线 RexBuild
  • 在 JavaFX 中使用 MouseEvent 和 MouseClicked 选择并移动 Canvas 图像

    我有一个应用程序的示例 用于绘制图片GraphicsContext并如下图所示工作 问题是select and move只有blue circle水平地与Canvas MouseEvent and MouseClicked public c
  • GraphQL 突变操作顺序

    我正在创建一个有效的突变 但我不确定它是否按照我认为的方式工作 不过我想知道执行顺序是什么 Async 从上到下同步 同步随机顺序 其他的东西 我想确保在执行插入 更新插入之前从表中删除某些项目 使用以下突变查询字符串 这是否总是会执行我想
  • Python Pygame 如何将矩形放在屏幕中央

    我真的是新来学习Python和做练习 我想创建一个矩形或任何其他图形 例如我使用的pygame Rect x y w h 并设置 screen center self screen rect setting screen get rect
  • 无法导入 Pandas 分析

    I am unable to import pandas profiling in jupyter notebook Could someone please tell me whats wrong 非常感谢所有试图帮助我的人 这有效 im
  • 使用python过滤json文件

    如何过滤 json 文件以仅显示我需要的信息 首先 我想说我对 python 和 JSON 工作还很陌生 如果之前有人问过这个问题而我忽略了它 我很抱歉 我有一个如下所示的 JSON 文件 Store 417 Item 10 Name Bu
  • 使用 Google Analytics 跟踪 Fancybox(jQuery Lightbox)中的图像视图

    我正在这个网站上工作 http www vomero co uk Torquay aspx http www vomero co uk Torquay aspx并希望跟踪图像的视图 在 Fancybox 画廊中打开 我知道我可以为每个图像添
  • 如何在 Mac 上使用 Emscripten emcc 和 make 时包含 ncurses

    我正在尝试构建一个项目 即 Angband 的源代码 http rephial org downloads 3 3 angband v3 3 2 tar gz http rephial org downloads 3 3 angband v