WebAssembly를 사용하여 첫 번째 C & Cpp 프로그램 실행
작은 소개:
# WebAssembly(약식 Wasm)은 스택 기반 가상 머신용 이진 명령 형식입니다. Wasm은 프로그래밍 언어를 위한 이식 가능한 컴파일 대상으로 설계되어 클라이언트 및 서버 응용 프로그램을 웹에 배포할 수 있습니다.
C/Cpp 및 Wasm 설정
리눅스의 환경을 생각하다
1. C/Cpp 컴파일러 설치
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential
$ gcc -v
$ make -v
2. 와머 설치
Wasmer은 서버에서 WebAssembly를 실행하기 위한 오픈 소스 런타임입니다.
아직 설치하지 않았다면 Wasmer를 설치해 보겠습니다.
$ curl https://get.wasmer.io -sSfL | sh
Wasmer가 설치되면 pkg-config를 쉽게 얻을 수 있습니다.
$ wasmer config --pkg-config
prefix=/Users/USER/.wasmer
exec_prefix=/Users/USER/.wasmer/bin
includedir=/Users/USER/.wasmer/include
libdir=/Users/syrus/.wasmer/lib
Name: wasmer
Description: The Wasmer library for running WebAssembly
Version: 2.0.0
Cflags: -I/Users/USER/.wasmer/include/wasmer
Libs: -L/Users/syrus/.wasmer/lib -lwasmer
3. Wasienv 설치
Wasienv은 다양한 프로그래밍 언어를 Wasm으로 컴파일하여 브라우저 또는 웹 서버에서 실행하는 데 사용됩니다.
curl https://raw.githubusercontent.com/wasienv/wasienv/master/install.sh | sh
wasmtime ReBinary.wasm
C/Cpp 파일을 WebAssembly WASI로 컴파일하려는 경우:
# To compile to a WebAssembly WASI file
# This command will generate:
# • An executable: ./example
# • A WebAssembly file: ./example.wasm
wasicc examples/example.c -o example
# If you are using configure
wasiconfigure ./configure
# If you are using cmake (or make)
wasimake cmake .
C/Cpp 파일을 일반 WebAssembly로 컴파일하려는 경우:
# To compile to a WebAssembly file
# This command will generate:
# • An executable: ./example
# • A WebAssembly file: ./example.wasm
wasmcc examples/example.c -o example
SDK 설치(wasienv install-sdk):
wasienv install-sdk 7
SDK를 기본값으로 설정하려면(wasienv default-sdk):
wasienv default-sdk 7
4. 와즘타임
Wasmtime은 WebAssembly 및 WASI를 위한 작고 효율적인 런타임입니다.
$ curl https://wasmtime.dev/install.sh -sSf | bash
$ wasienv install-sdk unstable
첫 번째 프로그램 실행
ReverseANo.c
또는 ReverseANo.cpp
라는 파일을 만들고 프로그램을 작성합니다.// Reverse a No.
#include<stdio.h>
int main()
{
int n, reverse=0, rem;
printf("Enter a number: \n");
scanf("%d", &n);
while(n!=0)
{
rem=n%10;
reverse=reverse*10+rem;
n/=10;
}
printf("Reversed Number: %d \n",reverse);
return 0;
}
컴파일 및 실행
이제
.wasm
파일에서 .c/.cpp
바이너리 파일을 생성하기 위해 Wasienv
를 사용합니다..c의 경우
wasicc ReverseANo.c -o ReBinary.wasm
.cpp의 경우
wasicc ReverseANo.cpp -o ReBinary.wasm
경고를 무시하십시오.
새
ReBinary.wasm
파일이 생성됩니다.이제 이 파일을 실행하기 위해
wasmtime
를 사용할 것입니다.wasmtime ReBinary.wasm
C로 작성된 Reverse a Number 예제에서 작업하여 첫 번째 프로그램을 실행할 수 있습니다.
C++ 프로그램의 경우 확장자를 .cpp로 변경하기만 하면 됩니다.
블로그와 관련된 아이디어와 제안을 댓글로 남기고 유용하다고 생각되면 공유해 주세요.
의견 섹션에 질문을 작성하면 오류를 해결하는 데 도움이 됩니다.
Reference
이 문제에 관하여(WebAssembly를 사용하여 첫 번째 C & Cpp 프로그램 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aryank21/executing-your-first-c-cpp-program-using-webassembly-5bhn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)