如何在Emscripten中设置gcc标志

如何在Emscripten中设置gcc标志,gcc,emscripten,emcc,Gcc,Emscripten,Emcc,我使用以下命令编译: gcc -Wall -march=native -O3 -ffast-math -I/usr/local/include -I/usr/local/include -o waon main.o notes.o midi.o analyse.o fft.o hc.o snd.o -L/usr/local/lib -L/usr/local/lib -lfftw3 -L/usr/local/lib -lsndfile -lm 我现在想用Emscripten进行编译。如何将上述g

我使用以下命令编译:

gcc -Wall -march=native -O3 -ffast-math -I/usr/local/include -I/usr/local/include -o waon main.o notes.o midi.o analyse.o fft.o hc.o snd.o -L/usr/local/lib -L/usr/local/lib -lfftw3 -L/usr/local/lib -lsndfile -lm

我现在想用Emscripten进行编译。如何将上述gcc命令转换为emcc命令?

您在问题中描述的命令是链接而不是编译。然而,一般来说,您应该能够用emcc替换gcc,它会做正确的事情。在这种情况下,不仅需要替换此链接命令,还需要替换用于将源代码编译为.o文件的命令

取消三月计划可能是个好主意

看起来您的项目正在使用libsndfile和FFTW。您可能需要自己使用emscripten编译这些库。它们都使用自动工具,因此如果幸运的话,只需在运行配置脚本时添加以下参数,就可以使用emscripten编译它们:

./configure --prefix=$HOME/emscripten-libs CC=emcc
make && make install

然后,当你链接你的程序时,你可以指定-L$HOME/emscripten libs/lib而不是-L/usr/local/lib。

在你的计算机上研究emsdk下载和设置

下一个兴趣环节是:

当您在命令行中设置emcc时,您可以看到此项目我基于python脚本runner.py等制作emcc最终外观:

基本和有用的示例:

与gcc非常相似:

Args:

-用于openGL的lGL

-s总内存=512MB-内存初始化文件1内存

-预加载文件folderWithImages/-如果使用资产,请使用预加载插件

-I forInclude/someheader.h

-L libraryFolder/someLib.lib

-标准=c11

简单运行:

./emcc-O2 a.cpp-o a.js

./emcc-O2 a.cpp-o a.html

链接:

./emcc-O2 a.cpp-o a.bc ./emcc-O2 b.cpp-o b.bc ./emcc-O2 a.bc b.bc-o project.js

或:

获取JS emcc-s WASM=1 myAdds.a myLib.a source1.c source2.cpp-o build.js

获取html emcc-s WASM=1 myAdds.a myLib.a source1.c source2.cpp-o build.html

将位代码文件链接在一起:

emcc project.bc libstuff.bc-o allproject.bc

将组合的位代码编译为HTML

emcc allproject.bc-o final.html

重要提示:

无法获取现有的.a库并将其转换。您还必须使用emcc构建lib