这是我目前的解决方案:
我有一个带有通常目标的 linux Makefile,它链接了一个先前生成的静态库并输出一个可执行文件。
该代码作用于带有 ifdefs 的 WEB 定义。
库的 Makefile 作用于平台特定源的 TARGET 环境变量:
ifeq ($(TARGET),WEB)
MODULES = RenderingEngine2.o RenderingEngine1.o WebApp.o main.o
别的
MODULES = RenderingEngine2.o RenderingEngine1.o LinuxApp.o main.o
万一
- 沿着 Makefile 有一个名为 emscripten.sh 的 bash 脚本,其内容如下:
#!/bin/bash
制作 TARGET="WEB" CXX="em++ -DWEB" AR="emar" 模块
使 TARGET="WEB" CXX="em++ -DWEB" AR="emar"
emcc --preload-file assets -o bin/helloArrow.html bin/helloArrow bin/lib.o
firefox bin/helloArrow.html
注意:emscripten 似乎不喜欢静态库中的 .a 扩展名,所以用 .o 扩展名命名你的库。