【问题标题】:Running c++ in browser在浏览器中运行 c++
【发布时间】:2019-11-15 00:23:35
【问题描述】:

我在我的一门学校课程中编写了一些基本的 c++ 程序。我想知道是否有可能以某种方式在浏览器中虚拟运行该程序。我想将程序发布到我的网站。一旦发布,人们就可以访问该程序、运行该程序并与该程序进行交互。我不是想为我的网站编写 C++,它更像是一个交互式作品集。

这可能吗?

【问题讨论】:

  • 我很担心您的措辞“以 HTML 格式运行程序”。有一些一般性的技术想法可能与您的想法有关,但我不确定最佳答案是什么水平。
  • 我很困惑:在浏览器中运行 c++ ...然后,我不想为我的网站编写 C++。如果您想要将功能移植到网站(javascript、HTML、CSS),那么这就是您需要做的事情,如果需要,C++ 会处理任何服务器回调。
  • 我向“浏览器”澄清了
  • 您是在尝试“运行”图形应用程序还是只是命令行?你对你的网络服务器有什么样的访问权限(只是 ftp 访问权限还是你有完全访问权限)?

标签: c++ html


【解决方案1】:

使用codepad,一个可以让你编译的网站和share code online

#include <iostream>

int main(int argc, char** argv) {
  std::cout << "Hello, Stack Overflow!" << std::endl;
  return 0;
}

【讨论】:

    【解决方案2】:

    还有Google Native Client SDK 允许C++ 代码在浏览器中运行。 Microsoft Active X 也是一个可行的选择。我只是说可能不推荐。

    【讨论】:

      【解决方案3】:

      您只能在您的服务器上运行该程序,而不是在客户端的机器上。

      至少没有下载并手动执行它。其他任何东西都会为恶意软件打开大门......

      【讨论】:

      • 可能需要稍微更新一下。整个完整的前端应用程序,或在客户端运行繁重逻辑的应用程序现在已成为常识。
      【解决方案4】:

      我看到两个选项,但都非常矫枉过正:

      • 用 JavaScript 编写(或查找)C++ 解释器
      • 使用运行操作系统的 VM(例如 jslinux 并在那里演示您的程序。

      我猜,明智的选择是让人们查看和下载源代码。

      【讨论】:

      • 我知道一个名为 Emscripten 的项目,它可以将 C 和 C++ 源代码编译为 JavaScript。见这里:bit.ly/1004X9a
      【解决方案5】:

      谷歌浏览器支持这个:http://www.readwriteweb.com/cloud/2011/08/google-officially-announces-cc.php

      但这绝不是“主流”或基于标准的。

      【讨论】:

        【解决方案6】:

        另一种解决方案(类似于键盘) 是使用https://ideone.com/,这似乎比键盘更好用,对用户更友好,但效果相同:

        允许您直接从浏览器编写 C++(可能有 60 种语言)并编译它并在浏览器中呈现结果(我尝试使用 printf 并且效果很好)。分叉源代码的可能性。

        https://ideone.com/baYzfe

        【讨论】:

          【解决方案7】:

          以下两个程序非常有用:

          1) Ideone

          2) Codepad

          您可以在任何浏览器中在线编译、运行和共享代码。

          【讨论】:

            【解决方案8】:

            您可以使用 Emscripten 将 C++ 编译为 Javascript。 Emscripten 可以将 LLVM 位码编译为 Javascript。可以在 here 找到一些 Emscripten 演示,包括光线追踪器和从 C++ 编译为 Javascript 的文本到语音引擎。

            要在网络浏览器中运行 x86 二进制文件,您还可以使用模拟器,例如 v86。这是在浏览器中编译和运行 C++ 程序的一种可能方式。

            【讨论】:

              【解决方案9】:

              在线运行 C++ 和其他多种语言的最佳站点之一是 Repl.it

              这个例子:repl.it/@abranhe/stackoverflow

              #include <iostream>
              
              int main() {
                std::cout << "Hello Stackoverflow\n";
                return 0;
              }
              

              它最大的优点之一是您可以处理多个文件、处理标头 (header.h) 文件等。以下网站均不提供此选项:

              我真的推荐它!你会喜欢的!

              【讨论】:

                猜你喜欢
                • 2014-11-01
                • 1970-01-01
                • 1970-01-01
                • 2018-04-10
                • 2012-04-12
                • 2011-10-26
                • 1970-01-01
                • 2015-03-21
                • 2019-01-23
                相关资源
                最近更新 更多