시스템인포

시스템인포

오래 전에 저는 C++로 매우 투박하고 원시적인 쉘을 작성했고, 최근에야 asm.js를 발견했습니다. 그래서 브라우저에서 컴파일하고 실행해 보는 것이 좋을 것이라고 생각했지만 그렇게 할 수 없습니다. 적절한 패키지가 호환되지 않습니다. llvm, clang 및 emscripten 패키지를 설치했는데 모두 저장소에 있는 내용으로 최신 상태입니다. 내 테스트 파일은 다음과 같습니다 hello.c.

#include <stdio.h>


int main(){
    printf("Hello World!\n");
    return 0;
}

이것은 으로 잘 컴파일되고 실행되지만 clang hello.c && ./a.out실행하면 emcc hello.c오류가 발생합니다.

/usr/bin/lli: error creating EE: No available targets are compatible with this triple, see -version for the available targets. FAIL: Running the generated program failed!

어느하다generate a.out.js이지만 a.out.js.mapSourceMap이므로 첫 번째 줄 참조만 포함됩니다(맵 자체에는 다음 줄만 포함됩니다: {"version":3,"file":"a.out.js","sources":[],"names":[],"mappings":""}. 이제 이것은 llvm이 로 컴파일되지 않았 -targets=all거나 적어도 js대상 없이 컴파일되었음을 의미하므로 빌드를 시도했습니다. 소스에서 설명된 단계를 꼼꼼하게 따라 최신 패키지를 가져왔습니다.여기그리고여기, 두 패키지 모두 성공적으로 빌드되었습니다. 그러나 이렇게 실행하면 emiscript는 '3.4를 예상했지만' 버전 정보에 대해 '(tags/RELEASE_380/final)'을 얻었고 이후 실패한다고 불평했습니다. 안전을 위해 소스 빌드를 시작하기 전에 emscripten, llvm 및 clang을 적절하게 제거했으며 3.4가최저한의버전이 아니라만 지원됨최신 빌드는 3.9이고 문서에서는 특별한 고려 사항을 언급하지 않았기 때문입니다. 어쨌든 소스에서 3.4를 빌드하려고 시도했지만 'js'를 유효한 대상으로 인식하지 못하는 것 같습니다. (나는 js 없이 빌드하고 어쨌든 실행해 보았습니다. 주사위는 없습니다.) emscriptenapt-package가 적절하게 컴파일된 clang/llvm을 종속성으로 가져오지 않는다는 것이 저에게는 이상합니다. 그렇다면 호출을 잘못하고 있는 것일까요? 문서에는 내가 하고 있는 일을 할 수 있어야 한다고 나와 있지만 나는 clang/emscripten이 처음이므로 clang 환경을 먼저 설정해야 할 수도 있고 아니면 명시적으로 무언가를 링크해야 할 수도 있습니다.

시스템인포

clang/clang++ 버전 및 정보(에서 clang --version):

clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
Target: i686-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

llvm 버전 및 정보(에서 lli --version):

LLVM version 3.8.0

Optimized build.
Built Jul  9 2016 (11:22:59).
Default target: i686-pc-linux-gnu
Host CPU: broadwell

emscripten 버전( emcc --version): 1.22.1

가장 최근에 생성된 내용 ~/.emscripten_sanity:1.22.1|le32-unknown-nacl|/usr/bin|(tags/RELEASE_380/final)

가장 최근에 생성된 페이스트~/.emscsripten

커널 정보(에서 uname -srpmio):Linux 4.4.0-21-generic i686 i686 i686 GNU/Linux

시스템은 확장 기능이 설치된 VirtualBox VM으로, CPU 코어 2개, 4GB RAM, 512mb 비디오 메모리 및 ~50GB 가상 디스크 이미지를 갖춘 32비트 시스템으로 Linux Mint 18 "Sarah" Cinnamon을 실행합니다. 다른 OS는 없으며 기본적으로 바닐라 설치입니다. 현재 apt 저장소에서 clang, llvm 및 emscripten의 기본 버전을 사용할 수 있습니다.

관련 정보