C/C++软件可以编译成字节码以便以后执行吗? (架构独立的 UNIX 软件。)

2024-01-12

我想将现有软件编译成演示文稿,以便以后可以在不同的体系结构(和操作系统)上运行。

为此,我需要一个可以在另一个架构/操作系统上轻松运行/模拟的(字节)代码(LLVM http://llvm.org/红外?一些 RISC 汇编?)

一些随机的想法:

  • 编译成JVM字节码并用java运行。限制太多? C 编译器可用吗?
  • 西里尔女士。 C 编译器可用吗?
  • LLVM?中间表示可以稍后运行吗?
  • 编译成 RISC 架构,例如 MMIX。那么系统调用呢?

然后是系统调用映射的事情,但是例如BSD 有系统调用转换层。

是否有任何已经可以工作的系统可以将 C/C++ 编译成稍后可以在另一个体系结构上使用解释器运行的东西?


Edit

我能否将现有的 UNIX 软件编译成不那么低级的二进制文件,这样比运行完整的 x86 模拟器更容易“模拟”?与 XEN HVM 相比,它更像 JVM。


上列出了多种 C 到 JVM 编译器维基百科的 JVM 页面 http://en.wikipedia.org/wiki/Java_Virtual_Machine#C_to_bytecode_compilers。我从未尝试过其中任何一个,但它们听起来像是一个有趣的练习。

由于与 Java 语言密切相关,JVM 执行 Java 规范规定的严格运行时检查。这要求 C 字节码编译器提供自己的“宽松的机器抽象”,例如生成使用 Java 数组表示主内存的编译代码(因此指针可以编译为整数),并将 C 库链接到集中式 Java 类模拟系统调用。下面列出的大多数或所有编译器都使用类似的方法。

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

C/C++软件可以编译成字节码以便以后执行吗? (架构独立的 UNIX 软件。) 的相关文章

  • 为什么 nginx 接受 Host 标头与 server_name 不匹配的请求?

    我有一个这样设置的站点 nginx 作为代理服务器 通过 UNIX 套接字代理为 Django 站点提供服务的 Gunicorn 实例的请求 这是我的 nginx 配置 server listen 80 server name api my
  • 使用 sed 反转输入顺序

    我有一个文件 我们将其命名为 a txt 该文件包含以下文本行 do to what 我想知道 SED 命令是什么来反转此文本的顺序 使其看起来像 what to do 我必须做某种追加吗 就像将 do 附加到 to 所以它看起来像 to
  • 如何尽可能快地输出固定缓冲区?

    示例代码 include
  • 使用 AWK 或 SED 以及以下标签以逗号分隔

    使用 AWK 或 SED 以及下面使用的标签以逗号分隔 BEGIN AccountID BEGIN CallerID BEGIN Billed Account Attributes 1111111 1111111 1111111 END B
  • 打包用来部署跨平台?

    在 Windows 上 应用程序通常打包为 MSI 在 Redhat Linux 上打包为 RPM 可用于将应用程序部署到所有平台 包括不同风格的 UNIX 和 Windows 的最佳开源打包方法是什么 内容包括 exe unix 二进制文
  • 在 nohup 中使用别名

    为什么以下不起作用 alias sayHello bin echo Hello world sayHello Hello world nohup sayHello nohup appending output to nohup out no
  • 在 UNIX 时间戳 Shell/Bash 中将日期与时区转换

    我需要将日期从格式为 yyyy mm dd hh mm ss TZ 的字符串转换为 UNIX 时间 TZ 时区 到目前为止我所做的是将没有时区的 yyyy mm dd hh mm ss 格式的日期转换为时间戳 dateYMD 2019 2
  • 如何使用 diff 排除多行模式?

    我想对两个 xml 文件进行比较 但忽略 2 3 行模式 例如 假设我想在比较下面的 xml 格式时忽略可用性和价格 这是我到目前为止所拥有的 diff I
  • 使用 Shell 脚本提供密码

    我已将客户端和服务器设置为无密码登录 就像无密码登录一样 通过将服务器的 RSA 密钥复制到所有客户端的 root ssh id rsa pub 来实现 但这是我手动完成的 我喜欢使用 shell 脚本自动执行此过程 并通过脚本向计算机提供
  • 找不到“Attributes.inc”文件

    我一直在使用中提供的标题include llvm and include llvm c尝试制作我自己的编译器 但是 每当我尝试编译时 都会收到此错误 没有llvm IR Attributes inc在我的文件或我见过的任何 LLVM 项目中
  • 在单个命令中使用前缀重命名文件夹中的所有文件

    重命名带有前缀的文件夹中的所有文件 Unix 假设一个文件夹有两个文件 a txt b pdf 那么它们都应该从一个命令重命名为 Unix a txt Unix b pdf 如果您的文件名包含没有空格并且你没有任何子目录 你可以使用一个简单
  • 如何判断我是在 64 位 JVM 还是 32 位 JVM 中运行(在程序内)?

    如何判断应用程序运行的 JVM 是 32 位还是 64 位 具体来说 我可以使用哪些函数或属性来在程序中检测到这一点 对于某些版本的 Java 您可以使用标志从命令行检查 JVM 的位数 d32 and d64 java help d32
  • Supervisorctl 错误:unix:///var/run/supervisord.sock 拒绝连接? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这是我的配置文件 我运行supervisord c etc supervisor supervisord conf效果很好 当我尝试跑步时
  • 在动态事件处理程序中引用“this”

    在我的 myClass 类中 我使用 Reflection Emit 为 myClass 类成员之一动态编写事件处理程序 我已经成功地做到了这一点 现在 我想修改事件处理程序以调用 myClass 类中的实例方法之一 但是 我无法弄清楚如何
  • 检测注册表虚拟化

    我有一组 C v2 应用程序 并且在 Win7 以及较小程度上的 Vista 中的注册表虚拟化方面遇到了困难 我有一个共享注册表配置区域 我的应用程序需要在 HKLM Software Company 中访问该区域 在 Vista 之前 所
  • CPAN shell 内存不足。在 Unix 上如何给它更多的内存?

    我得到一个Out of memory 所有安装的消息 我以前从未使用过 cpan 并且不太确定它是如何工作的 我做了一个ulimit在 cpan 目录中 结果是无限的 这是我正在看的内容 usr bin perl MCPAN e shell
  • 强制jvm返回本机内存[重复]

    这个问题在这里已经有答案了 我时不时地运行需要大量内存的 eclipse 任务 因此 当任务运行时 jvm 会消耗大约 2 3GB 的 RAM 这是可以的 但是一旦 jvm 占用了该内存 它就不会释放它 并且我遇到了一种情况 堆中已用内存约
  • 当目标是属性时,@Throws 不起作用

    在看的同时这个问题 https stackoverflow com q 47737288 7366707 我注意到申请 Throws to a get or setuse site 没有影响 此外 唯一有效的目标 for Throws ar
  • Scala REPL 中的递归重载语义 - JVM 语言

    使用 Scala 的命令行 REPL def foo x Int Unit def foo x String Unit println foo 2 gives error type mismatch found Int 2 required
  • Python 用静态图像将 mp3 转换为 mp4

    我有x文件包含一个列表mp3我想转换的文件mp3文件至mp4文件带有static png photo 似乎这里唯一的方法是使用ffmpeg但我不知道如何实现它 我编写了脚本来接受输入mp3文件夹和一个 png photo 然后它将创建新文件

随机推荐

  • 对“omp_get_max_threads_”的未定义引用

    我在尝试编译项目时遇到以下错误 fortran 使用 gfortran 对 omp get max threads 的未定义引用 对 omp get thread num 的未定义引用 问题是 我的 GCC 版本是 4 4 3 它应该支持
  • 运行 Julia .jl 文件

    我是朱莉娅的新手 刚刚完成了我的第一个程序 我在 julia studio 中编写了代码 并在该程序中对其进行了测试 它为我提供了所有正确的输出 但 shell 将输出分开 就好像它是两个不同的执行一样 我想知道这是否是我的编译器的问题 所
  • R ggplot2 对只有几个数据点的线图进行轻微平滑

    不确定这是否是一个编程问题 如果我有下面的数据 它会生成一个 尖峰 图表 并且我想使用 ggplot2 生成一个稍微平滑的图表 我该如何最优雅地处理它 通常的平滑方法去除了太多信息 我正在考虑的一种方法是在当前数据集之间插入额外的两个数据点
  • 使用空手道框架时,如何有选择地忽略构建中的某些 .feature 文件?

    我必须忽略使用空手道框架的集成测试套件的某些 feature 测试文件 有什么方法可以有选择地排除某些文件 是的 答案是tags https github com intuit karate test suites Example igno
  • 制作Asus google Nexus 7的模拟器

    我有 android sdk 更新到最新版本 v21 现在我想要的是 制作 Asus google Nexus 7 的模拟器 包含 800 x 1280 分辨率和 216 dpi 当我将 sdk 更新到最新版本时 我无法编辑模拟器当前的 d
  • JSP 自定义标记中的 i18n 翻译

    是否可以编写自定义 JSP 标记来获取 i18n 消息键并输出给定 请求的翻译短语 通常在 JSP JSTL 中 我这样做
  • Google Spell API 和 TinyMCE

    我刚刚使用说明成功实现了 TinyMCE 的拼写检查插件here http ondotnet deap nu 2009 01 implementing tinymce spellchecker with html 不过 我对这个结尾段落感到
  • 在泛型类中使用泛型协议

    我定义了一个协议LLNodeType protocol LLNodeType typealias T var firstNode LLNode
  • knitr 被 data.table `:=` 赋值欺骗

    看起来knitr不明白DT a 1 不应导致输出DT到文档 有办法阻止这种行为吗 Example knitr文档 Data Table Markdown Suppose we make a data table in R Markdown
  • 错误:无法扩展文件“pg_tblspc/4815857/PG_11_201809051/16321”:设备上没有剩余空间

    My postgres table occupied 100 memory并想截断它 当我使用时TRUNCATE TABLE TABLE NAME它给出的声明如下错误 错误 无法扩展文件 pg tblspc 4815857 PG 11 20
  • Laravel 上的用户名作为子域

    我已经设置了通配符子域 domain com 我正在使用以下 htaccess Options FollowSymLinks RewriteEngine On RewriteBase RewriteCond HTTP HOST www Re
  • 在 LibGDX 中将形状绘制为纹理

    我正在游戏中创建菜单 特别是带有圆角和边框的矩形 我可以使用形状渲染器来做到这一点 但我不能混合形状渲染器和精灵批处理器 目前我的分辨率似乎是使用大形状如 PNG 并缩放它们 但在很多设备上这会产生模糊的角落 我已经阅读了关于网格 着色器
  • 如何对具有多个数据源的 Spring Boot 应用程序进行 dockerize?

    我有一个 springboot 应用程序 它使用 postgresql 数据库和 mongoDB 数据库 我已经能够正确配置它们 但现在当我想对我的应用程序进行 dockerize 以便稍后将其部署到 Kubernetes 集群上时 我完全
  • glGetIntegerv 返回垃圾值

    include
  • 如何更改新组件的默认名称

    当您将组件添加到窗体时 Delphi 会设置组件的名称 第一个 TButton 将被命名为 Button1 第二个 Button2 依此类推 不久前我偶然发现你可以更改这个 前缀 继续使用 TButton 我将其更改为 btn 因此 TBu
  • Chromium 嵌入式框架绑定按键

    我看到了这个在Chromium Embedded Framework的官方论坛上 但似乎没有给出解决方案 说实话 我对C 平台不太适应 您能帮我提供一个将 CEF 绑定到 web 应用程序的代码片段吗 我想使用默认控件来控制应用程序 ALT
  • 如何在不让整个浏览器跳下来的情况下转到可滚动div中的锚标记?

    我正在为客户构建一个简单的词汇表小部件 作为更大项目的一部分 术语表的内容包含在可滚动的 div 中 overflow auto 每个字母都有一个与之关联的锚标记 a b c 等 可滚动 div 上方是一个包含字母表中每个字母的 div 单
  • tf.nn.lrn() 方法有什么作用?

    这是 cifar10 tutorial 中的代码片段 它来自 cifar 10 py conv1 with tf variable scope conv1 as scope kernel variable with weight decay
  • ExpanderView 在页面导航后展开

    我正在使用的端口WPF ExpanderView 扩展器RT https expanderview codeplex com in my UWP应用程序显示带有项目的可扩展标题 当应用程序第一次启动时 这可以正常工作MainPage已初始化
  • C/C++软件可以编译成字节码以便以后执行吗? (架构独立的 UNIX 软件。)

    我想将现有软件编译成演示文稿 以便以后可以在不同的体系结构 和操作系统 上运行 为此 我需要一个可以在另一个架构 操作系统上轻松运行 模拟的 字节 代码 LLVM http llvm org 红外 一些 RISC 汇编 一些随机的想法 编译