2017-12-18 35 views
0

, 그것은 말한다 : 당신은 C++에서 코드를 작성, 웹에 그것을 실행하려는 경우bullet 라이브러리와 함께 emcc를 사용하여 cpp 파일에서 컴파일 된 .bc 파일을 링크하는 방법은 무엇입니까? ammo.js의 문서 당으로

가장 간단한 것입니다. 그렇다면 코드를 LLVM으로 컴파일하고, 글 머리 기호로 링크하고, emscripten을 사용하여 JavaScript로 컴파일하십시오. (가장 쉬운 방법은 .bc 파일을 make.py의 llvm-link 명령에 추가하는 것입니다)

그럼 C++로 작성된 다음 코드를 LLVM 비트 코드로 컴파일하고 링크하여 웹에서 실행할 수 있습니까? BulletHelloWorld example

어떻게하면 make.py에서 링크 할 수 있습니까? 특정 프로그램을 컴파일하고 전체 bullet 라이브러리를 JavaScript에 노출하고 싶지 않더라도 항상 ammo.idl 파일을 사용해야합니까? Link to make.py

답변

1

기본 사항부터 살펴 보겠습니다. 당신이 make와 cmake에 대해 알지 못하는 경우, 진행하기 전에 공부하십시오.

먼저 웹에서 사용하려면 소스에서 Bullet Library를 빌드해야합니다. 내가 볼 수 있듯이, Python과 독립적으로 플래그를 전달해야합니다. 이 깃발들을 연구하고 당신에게 필요한 것을보십시오.

Bullet 라이브러리는 cmake를 사용하여 빌드 파일을 생성합니다. 먼저 cmake에서 makefile을 가져온 다음 생성 된 makefile을 "emcc make"할 수 있습니다.

이 단계의 출력 즉 .bc 파일은 다음 단계의 출력에 "링크"됩니다.

이제 컴파일하려는 example.cpp는 Bullet Library의 일부 헤더에 따라 달라집니다. 따라서 main.cpp 파일을 컴파일하는 동안 em ++ 바이너리에이 헤더에 대한 경로를 전달해야합니다. 이것은 일단 컴파일 된 main.bc를 생성해야합니다.

이제 em ++을 다시 호출해야하지만 이전 단계의 .bc와 함께 main.bc를 매개 변수로 사용하고 js/html과 같은 필수 출력 파일도 제공해야합니다. 한 가지 의미로 우리는 모든 ".bc"파일을 링크하여 js/html을 생성합니다.

기호 "경고"가 누락되면 코드가 실행되지 않을 수도 있습니다.

btw이 모든 내용은 공식 emscripten 웹 사이트에서 볼 수 있으므로 혼란 스러울 때는 참조해야합니다.