Converter C++ em JavaScript [RESOLVIDO]

1. Converter C++ em JavaScript [RESOLVIDO]

Silas Henrique
silash35

(usa Arch Linux)

Enviado em 15/08/2018 - 10:35h

Olá ! Eu tenho um código muito simples em C++ e gostaria que ele rodasse em paginas Web da mesma forma que o JavaScript faz (pelo lado do cliente). Pesquisando eu achei o Emscripten que eu não faço ideia de como funciona. Alguém pode me ajudar a entender isso ?
Outra coisa, por meio do Emscripten seria possível escrever um código que, por exemplo, tenha uma saída de texto no local que eu quiser do HTML ?
Por exemplo:
if(dia){
cout << "Está de dia" << endl;
}

<h1>
<script>
Local onde o texto do cout sairia
<script />
<h1 />


Seria possível usar entradas também ?


  


2. MELHOR RESPOSTA

Fernando
phoemur

(usa Debian)

Enviado em 21/08/2018 - 14:20h

Você deve ter o Emscripten e o Node.js instalados.
Siga o tutorial do site: https://kripken.github.io/emscripten-site/docs/getting_started/index.html

Resumidamente é assim.

Você tem um arquivo teste.cpp:
#include <iostream>

using namespace std;

int main()
{
cout << "Hello, World!" << endl;

return 0;
}


Você compila com o emscripten:
$ em++ -o teste.html teste.cpp -s WASM=0 -O3 


você terá como saída os arquivos teste.js e teste.html

você executa no terminal e vai ver o Hello world
[phoemur@notebook_lenovo.darkstar ~/]$node teste.js
Hello, World!



Você abre o teste.html no browser e vai ver o hello world no browser.


Se ao invés de Javascript você preferir WebAssembly (WASM),
é só compilar com
$ em++ -o teste.html teste.cpp -s WASM=1 -O3 

que além dos arquivos já citados você vai ter também o teste.wasm que é seu binário em webassembly

Daí o seu arquivo teste.js vai servir somente pra chamar as rotinas do seu arquivo WASM, o que é muito mais eficiente...
Você vai notar que o arquivo JS é bem maior em tamanho também, quando utilizado sem WASM.

Teoricamente você pode compilar quase qualquer coisa em Webassembly.
SDL, QT5, Bullet, etc...
Tem vários jogos com OpenGL, como Quake3, Doom que apesar de feitos em C/C++ rodam no browser em webassembly tranquilamente
______________________
https://github.com/phoemur

3. Re: Converter C++ em JavaScript [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 21/08/2018 - 14:29h

Esqueci de dizer que o Javascript gerado tem um tamanho grande devido a ser utilizado o asm.js para melhor performance
https://en.wikipedia.org/wiki/Asm.js

______________________
https://github.com/phoemur






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts