Javascript 如何在只有画布的情况下摆脱emscripten徽标和控制台?

Javascript 如何在只有画布的情况下摆脱emscripten徽标和控制台?,javascript,c,sdl,webassembly,emscripten,Javascript,C,Sdl,Webassembly,Emscripten,每当我使用emcc main.C-o index.html编译我的C代码时,emscripten都会生成一个带有徽标、一些按钮和控制台的html文件。但我不想要那些。我只想在画布上显示SDL渲染的内容 我做了一点研究,发现。显然,您必须输入emcc--shell文件,并给它一些模板html作为参数 所以我制作了一个模板html文件,如下所示 <html> <head> <title>Some title</title> &l

每当我使用
emcc main.C-o index.html编译我的C代码时,emscripten都会生成一个带有徽标、一些按钮和控制台的html文件。但我不想要那些。我只想在画布上显示SDL渲染的内容

我做了一点研究,发现。显然,您必须输入
emcc--shell文件
,并给它一些模板html作为参数

所以我制作了一个模板html文件,如下所示

<html>
   <head>
      <title>Some title</title>
   </head>
   <body>
   </body>
</html>

一些头衔
但是当我运行
emcc main.c-o index.html--shell文件template.html
时,它给出了一个错误。显然,emscripten寻找一些类似于-
{{{{SCRIPT}}}
的人

所以我在我的身体里添加了
{{{{SCRIPT}}}
。很好。但是当我在
localhost:3000
中运行我的
index.html
时,我在控制台中得到一个错误,它说
找不到未定义的
的addEventListener

注意,我正在运行一个SDL程序

我该怎么办?提前感谢是一个最小的示例,假设画布代码位于
index.js
,您可以将其用作
index.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>

    <!-- Create the canvas that the C++ code will draw into -->
    <canvas id="canvas" oncontextmenu="event.preventDefault()"></canvas>

    <!-- Allow the C++ to access the canvas element --> 
    <script type='text/javascript'>
        var Module = {
            canvas: (function() { return document.getElementById('canvas'); })()
        };
    </script>
    
    <!-- Add the javascript glue code (index.js) as generated by Emscripten -->
    <script src="index.js"></script>
    
</body>

</html>

变量模块={
canvas:(函数(){return document.getElementById('canvas');})()
};

你为什么不找到默认的模板文件并编辑它呢?我查看了该文件的内部,它对我来说似乎是一团乱麻。当然,我可以慢慢地阅读每个标签都在做什么,但这似乎不是解决我问题的正确方法。我正在寻找一种更简单的方法,或者是一个没有徽标的已经构建好的模板(我在任何地方都找不到)也许shell_minimal.html就是那个。